c++ string浅析
1.这次我们来探讨一下#include<sstream>和#include<cctype>
sstream里面我们用stringstream来构造一个字符串流型数据
stringstream ss;
string s;
getline(cin,s); //把输入一行的内容放在字符串里
要注意的一点是getline是逐行获取的,所以说当我们前面还有输入时即
这样是错误的:
int n;
cin>>n;
getline(cin,s);
正确写法:
int n;
getline(cin,s);
n=atoi(s.c_str());
利用强制类型转换,把字符串转成数字,atoi是char *->int
c_str()是string->char *
接下来
ss.str(s); //把字符串放在字符串流中
需要注意的是:ss里面会缓存之前存在的内容,所以说如果我们需要每次获取这一行的数据就需要把ss设置成局部变量
getline(cin,s);
stringstream ss;
ss.str(s);
这样每次获取新一行数据ss都会更新成新一行数据
#include<cctype>
char ch;
有三个东西挺好用的,虽然说原理是显然的
isalpha()判断是否为字母
isalpha(ch);
//等价于
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
isdigit()判断是否为数字
isdigit(ch);
//等价于
if(ch>='0'&&ch<='9')
isalnum()判断是否为数字字母
isalnum(ch);
//等价于
if(ch>='0'&&ch<='9'||ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')