Skip to main content

Strings

Strings vs Arrays in C++

Strings are sequences of characters used to represent textual data in programming.

An array is like a list of items, but each has a specific place. It's similar to lining up a bunch of boxes in a row. You can put things in these boxes (items) and easily find a specific box by knowing its position in the row (index).

Try to observe the similarity. An array is like a list of items but if I say that these items are characters then doesn't it seem similar to strings?

In C++, characters of a string behave similarly to elements of an array.

💡
Note that in C++ programming, a char array and a string are 2 different things that might seem similar and even are in some aspects but in this article, we are going to talk about the similarity of a (char) array and a string only in terms of behavior.

Now let's see how can we apply our array concepts to strings

Access String Characters

Just like array elements, we can access string characters by using indexes (similar to an array).

Suppose, we have a string like this:

string text = "Sea!";

Then, the indexing would be:

Example

#include <iostream>
using namespace std;
 
int main() {
 
    string text = "Sea!";
 
    // first character
    cout << text[0] << endl;  // S
 
    // second character
    cout << text[1] << endl;  // e
 
    // third character
    cout << text[2] << endl;  // a

    //fourth character
    cout << text[3];   // !
 
    return 0;
}

Try on Compiler

Output

S
e
a
!

Problem

Write a C++ program to create a string 'HelloWorld' assigned to a variable named text. Print the 8th element r as the output.

Output

The 8th element of the string is: r
Solution
#include <iostream>
using namespace std;

int main() {

    // Create a string 'HelloWorld' and assign it to the variable named text
    string text = "HelloWorld";

    // Print the 8th element of the string
    cout << "The 8th element of the string is: " << text[7] << endl;

    return 0;
}

Update String Characters

Remember how we updated array elements while studying arrays? In the same way, we can update string characters too. Let's see an example.

Example

#include <iostream>
using namespace std;
 
int main() {
 
    string text = "Bolt";

    cout << "Original text: " << text << endl;
 
    // change the first character to 'G'
    text[0] = 'G';
 
    // change the fourth character to 'f'
    text[3] = 'f';
 
    cout << "Updated text: " << text;
 
    return 0;
}
 

Try on Compiler

Output

Original text: Bolt
Updated text: Golf

Quiz

What will be the output of the following code?

#include <iostream>
using namespace std;

int main() {

    string text = "Green";

    text[0] = 'L';
    text[3] = 'h';
    text[1] = 'i';

    cout << text;

    return 0;
}

Iterating through a string

Does it need an introduction now XD? Your smart minds must have already figured this out. If not, then just recall how we used to iterate over arrays. We used loops! Similarly, we are going to use loops to iterate through a string too.

Example

#include <iostream>
using namespace std;

 int main() {
 
    string text = "Hello Coders :)";

    // Note the size of the string 'text' and run a loop from 1 to size 
    for (int i = 0; i < 15; ++i) {
        cout << text[i] << endl;
    }
  
    return 0;
}

Try on Compiler

Output

H
e
l
l
o
 
C
o
d
e
r
s
 
:
)

Iterating using a ranged for loop

Just like arrays, we can also iterate using a ranged for loop without worrying about the range to pass in a simple for loop.

Example

#include <iostream>
using namespace std;

 int main() {
 
    string text = "Hello Coders :)";

    // Note the size of the string 'text' and run a loop from 1 to size 
    for (char var : text) {
        cout << var << endl;
    }
  
    return 0;
}

Try on Compiler

Output

H
e
l
l
o
 
C
o
d
e
r
s
 
:
)