字符串就是字符数组加上结束符\0
常用的不忽略空格的字符串读入方式
针对string类型(多用)
[读入1] [c++]1 2 3 4 5
| 略 string a; getline(cin,a);//这个只能读string不能读字符串 cout<<a.size()<<endl; return 0;
|
针对char类型
[读入2] [c++]1 2 3 4 5
| 略 char s[100]; fgets(s,100,stdin);//100表示最多读入字符 //stdin表示定义好的系统变量 return 0;
|
字符串流(形式有点像py列表)
先把字符串初始化为字符串流 再从中读出 用法与cin相似
[字符串流] [c++]1 2 3 4 5 6 7 8 9 10 11 12
| 略 string s; getline(cin,s); stringstream ssin(s);//ssin自定义 s被初始化 string str; while(ssin>>str)//读出 pass int a,b; double c,d; string e; ssin>>a>>b>>c>>d; cout<<a<<b<<c<<d<<endl;//可读出任何形式
|
一些常用的
[常用函数] [c++]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 略 string a,b,c strcmp(a,b) 比较两个字符串大小 a大返回1 相等返回0 否则-1 a.size();//长度 strcpy(a,b);将字符串b复制给从a开始的字符数组 a.substr(m,n); str.back()//最后一个字符 其实等价于str[str.size()-1] str.pop_back//去除最后一个字符 c=a.find(b,2);从下标为2开始(包含2)寻找b 输出b第一个字符的位置下标 如果没有 输出c.npos string str="abcd"; reverse(str.begin(),str.end());
string str2="abcd"; reverse(str2.begin()+1,str2.end());翻转
|