字符串就是字符数组加上结束符\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());翻转