CC17.【C++ Cont】遍历字符串的两种方式以及按单词去读取字符串

目录

1.使用循环

1.对于C语言风格的字符串

一般的for循环

范围for

while循环

2.对于string类字符串

一般的for循环

范围for

2.使用迭代器

3.按单词去读取字符串

模版代码

分析

练习题


目前学习的字符串的种类有两种: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文章的第三题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangcoder

赠人玫瑰手有余香,感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值