算法竞赛入门经典 第四章 学习笔记 1

C语言里的字符串就是字符数组 char s[100]
C++提供了一个新的string类型,用来替代C语言中的字符数组
用户仍然可以继续用字符数组当字符串用,但是如果希望程序更加简单、自然,string类型往往是更好的选择。
C++的cin/cout可以直接读写string类型,却不能读写字符数组;string类型还可以像 整数那样“相加”,而在C语言里只能使用strcat函数。
C++在string头文件里定义了string类型,直接支持流式读写。string有很多 方便的函数和运算符,但速度有些慢
考虑这样一个题目:输入数据的每行包含若干个(至少一个)以空格隔开的整数,输出 每行中所有整数之和。如果只能使用字符与字符数组,一般有两种方案:一是使用getchar( ) 边读边算,代码较短,但容易写错,并且相对较难理解(5);二是每次读取一行,然后再扫描 该行的字符,同时计算结果。如果使用C++,代码可以很简单。

#include<iostream>
#include<cstring>
#include<sstream>
using namespace std;
int main()
{
	string line;
	while(getline(cin,line)) //用getline函数读一行数据
	{
		int sum=0;
		int x;
		stringstream ss(line);  //用这 一行创建一个“字符串流”——ss
		while(ss>>x) sum+=x;     //接下来只需像读取cin那样读取ss即可
		cout<<sum<<endl;
	}
	return 0;
} 
 posted on 2020-04-06 00:41  My_serendipity  阅读(110)  评论(0编辑  收藏  举报