如何在C++中扫描字符串

how to scan a string in C++

本文关键字:扫描 字符串 C++      更新时间:2023-10-16

如何逐个扫描字符串并将每个字符打印在单独的行中,我正在考虑将字符串存储在数组中并使用for循环进行打印,但我不知道如何。。。。请帮忙!!!

这是我的代码:

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
  string str;
  char option;
  cout << "Do you want to enter a string? n";
  cout << " Enter 'y' to enter string or 'n' to exit nn";
  cin >> option ;
  while ( option != 'n' & option != 'y')
  {
    cout << "Invalid option chosen, please enter a valid y or n n";
    cin >> option;
  }
  if (option == 'n')
    return 1;
  else if (option == 'y')
  {
    cout << "Enter a string n";
    cin >> str;
    cout << "The string you entered is :" << str << endl;
  }
  system("pause");
  return 0;
} 
for (int i=0; i<str.length(); i++)
    cout << str[i] << endl;

就是这样:)

您可以简单地通过逐个字符的访问字符串

for(int i=0;i < str.length();i++)
   cout << str[i];

至少有三种选择。对循环使用普通,并使用<algorithm>库的函数copyfor_each

#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
void f( char c) {
    c = c + 1; // do your processing
    std::cout << c << std::endl;
}
int main()
{
    std::string str = "string";
    // 1st option
    for ( int i = 0; i < str.length(); ++i)
    std::cout << str[i] << std::endl;
    // 2nd option
    std::copy( str.begin(), str.end(), 
                       std::ostream_iterator<char>( std::cout, "n"));
    // 3rd option
    std::for_each( str.begin(), str.end(), f); // to apply additional processing
    return 0;
}

http://ideone.com/HoErRl