A C++ string is a sequence or collection of characters.

Length or size of a string means the total number of characters that are present in it.
This article will explain different ways to find the length of a string in C++ with programs and examples.

In C++, a string can be declared in two ways:

  • As a character array such as char[] str = "Hello";
  • As an object of string class such as string str = "Hello";

First representation is also known as C-style string or simply C-string since this syntax is also used to represent a string in C.
Method 1: Using strlen() function
strlen() function is used to find the length of a C-string. It accepts a character array as argument and returns its size.
This function is defined in cstring header file so you should include it when using this method.
Example,

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char s[30]="Hello! Welcome to C++";
    cout << "Length of string is: " << strlen(s) << endl;
}

This outputs

Length of string is: 21

If you want to get the length of a string declared in C++ style, that is, using string, with strlen() function, then it needs to be converted to a C-style string by using c_str() function as shown below.

#include <iostream>
#include <cstring>
#include <string>

using namespace std;

int main()
{
    string s = "Hello! Welcome to C++";
    cout << "Length of string is: " << strlen(s.c_str()) << endl;
}

Remember that c_str() function is defined in string header file, so this needs to included as well.

Method 2: Using size() function
String class has a built-in member function size() which returns the number of characters in a string. This function does not take any arguments.
Example,

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s = "Hello! Welcome to C++";
    cout << "Length of string is: " << s.size() << endl;
}

which prints

Length of string is: 21

Method 3: Using length() function
String class contains a length() function which also returns the number of characters in a string. Example,

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s = "Hello! Welcome to C++";
    cout << "Length of string is: " << s.size() << endl;
}

Output is

Length of string is: 21

String length() vs size()
Both length() and size() functions return the same result, then a question arises why two different methods in the same class.
Reason is that size() is defined for consistency with data structures such as map, vector etc., while length() is to improve readability since the word length is best suited with strings.
Both these methods are same and have same complexity.

Method 4: Using for loop
In this method, a for loop is used to iterate over the characters of string. An integer variable is incremented by 1 in every loop iteration.
This variable is initialized to 0 before the start of loop. After the loop ends, it will be equal to the number of characters in the string or its length.
Example,

#include <iostream>
#include <string>

using namespace std;

int main()
{
   string s = "Hello! Welcome to C++";
   // initialize counter
   int count = 0;
   // loop over string
   for (int i = 0; s[i];i++) {
       // increment variable
       count++;
   }
    cout << "Length of string is: " << count << endl;
}

Output of this program is

Length of string is: 21

Method 5: Using while loop
This method is the same as the previous one but it uses a while loop to iterate over the string.

#include <iostream>
#include <string>

using namespace std;

int main()
{
   string s = "Hello! Welcome to C++";
   // initialize counter
   int count = 0;
   // loop over string
   for (int i = 0; s[i];i++) {
       count++;
   }
    cout << "Length of string is: " << count << endl;
}

Output of this program is

Length of string is: 21

Method 6: Using iterator
An iterator is used to loop over a string. A variable is initialized to 0 and incremented in every iteration.
When the iterator completes traversing the string, the variable value will be equal to the number of characters in the string. Example,

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
   string s = "Hello! Welcome to C++";
   // declare iterator
   string::iterator it;
   int count = 0;
   // loop with iterator
   for(it = s.begin(); it!=s.end(); it++){
       count++;
   }
    cout << "Length of string is: " << count << endl;
}

In this article, all the methods except the first find the length of a string without using strlen() function.

Hope the article was useful.

Leave a Reply