目录
目前学习的字符串的种类有两种:C语言风格的字符串和string类字符串
1.使用循环
1.对于C语言风格的字符串
一般的for循环
for (int i=0;i<strlen(arr);i++)
{
cout<<arr[i];
}
范围for
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int a : arr)
{
//do_something
}
while循环
int i=0;
while (arr[i])
{
cout<<arr[i];
i++;
}
2.对于string类字符串
一般的for循环
使用size()函数,用法参见C12.【C++ Cont】string类字符串的创建、输入、访问和size函数文章
string s;
getline(cin,s);
for (auto i=0;i<s.size();i++)
{
//do_something
}
范围for
范围for的用法参见C7.【C++ Cont】范围for的使用和auto关键字文章
string s;
getline(cin,s);
for (auto a:s)
{
//do_something
}
2.使用迭代器
迭代器遍历字符串具体参见C13.【C++ Cont】初识string类字符串的迭代器文章
3.按单词去读取字符串
核心思想:让cin和while打配合
模版代码
while (cin >> s)
{
//do_something
}
分析
如果字符串中有空格,可以当做多个单词去读取
cin >> s 会返回一个流对象的引用,即cin自身,流对象(如cin)可以被用作布尔值来检查流的状态。
1.如果流的状态良好(未发生错误),流对象的布尔值为true
2.如果发生错误(如遇到输入结束符或类型不匹配),流对象的布尔值为false
在 while (cin >> s) 中,循环的条件部分检查cin流的状态. 如果流成功读取到一个值,cin >> s 返回的流对象cin将被转换为true,循环将继续. 如果读取失败(如遇到输入结束符或无法读取到一个值), cin >> s 返回的流对象cin将被转换为false,循环将停止
注意:在Dev C++中,键入Ctrl+Z可以停止while(cin >> s)的读取
练习题
备注:练习题参见CE7.【C++ Cont】练习题组7文章的第三题