Iterate over characters of a string in C++
Last Updated :
24 Nov, 2020
Given a string str of length N, the task is to traverse the string and print all the characters of the given string.
Examples:
Input: str = "GeeksforGeeks"
Output: G e e k s f o r G e e k s
Input: str = "Coder"
Output: C o d e r
Naive Approach: The simplest approach to solve this problem is to iterate a loop over the range [0, N - 1], where N denotes the length of the string, using variable i and print the value of str[i].
Below is the implementation of the above approach:
C++
// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to traverse the string and
// print the characters of the string
void TraverseString(string &str, int N)
{
// Traverse the string
for (int i = 0; i < N; i++) {
// Print current character
cout<< str[i]<< " ";
}
}
// Driver Code
int main()
{
string str = "GeeksforGeeks";
// Stores length of the string
int N = str.length();
TraverseString(str, N);
}
Output:
G e e k s f o r G e e k s
Time Complexity: O(N)
Auxiliary Space: O(1)
Auto keyword - based Approach: The string can be traversed using auto iterator.
Below is the implementation of the above approach:
C++
// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to traverse the string and
// print the elements of the string
void TraverseString(string &str, int N)
{
// Traverse the string
for (auto &ch : str) {
// Print current character
cout<< ch<< " ";
}
}
// Driver Code
int main()
{
string str = "GeeksforGeeks";
// Stores length of the string
int N = str.length();
TraverseString(str, N);
}
Output:
G e e k s f o r G e e k s
Time Complexity: O(N)
Auxiliary Space: O(1)
Iterator - based Approach: The string can be traversed using iterator.
Below is the implementation of the above approach:
C++
// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to traverse the string and
// print the elements of the string
void TraverseString(string &str, int N)
{
// Stores address of
// a character of str
string:: iterator it;
// Traverse the string
for (it = str.begin(); it != str.end();
it++) {
// Print current character
cout<< *it<< " ";
}
}
// Driver Code
int main()
{
string str = "GeeksforGeeks";
// Stores length of the string
int N = str.length();
TraverseString(str, N);
}
Output:
G e e k s f o r G e e k s
Time Complexity: O(N)
Auxiliary Space: O(1)