字符数组的输入输出
char s[100];
1.cin的输入输出
cin>>s+1; 表示从下标1的位置开始输入
cout<<s+1; 表示从下标1的位置开始输出
cout<<s[i]; 表示输出某个位置的字符
2.printf的输入输出
scanf(“%s”,s); s前不可加&,数组名本身就是一个地址
cin,printf输入字符串时遇到 空格,回车,文件结束符即停止
输入一整行的字符(包含空格)
1.char数组 char s[]; fgets(s,100,stdin); 或 cin.getline(s,100); 表示最多输入100个字符
2.string 字符串 string s; getline(cin,s);
fgets()会把回车当作一个字符读入
string的输入输出
string s;
1.不可以用scanf输入,printf(“%s”,s.c_str()); 或 puts(s.c_str());
2.cin>>s; cout<<s;
常用函数(只用于char数组)
1.strlen(s); 求字符串s1的长度 ((在for循环中使用时将strlen提前赋个一个变量))
2.strcmp(s1,s2); 按字典序比较s1和s2,s1[HTML_REMOVED]s2返回1
3.strcpy(s1,s2); 将s2复制给s1
字符串字典序的比较: abc>ab
abcd<abd ab相同,c的ASCLL值小于d
常用函数(只用于string)
string s;
1.s.empty(); 若为空返回1,不为空返回0
2.s.size(); 完全等价于s.length(); 返回字符串的长度,类似于char数组的strlen();
3.s.pop_back(); 删掉字符串s的最后一个字符 s.back(); 返回字符串s的最后一个字符
4.s.substr(a,b); 取出从下标a开始长度为b的字符串 substr(a)取出从下标a开始到结束的字符串
5.字符串的连接:s1+s2 字典序比较:>,<,==
特殊用法: for(char c:s) 循环遍历字符串s中的每一个字符,并将字符赋值给变量c
关于stringstream的例题: https://www.acwing.com/activity/content/code/content/1164883/
翻转
1.字符串
string s; reverse(s.begin(),s.end())
2.字符数组
char s; int len=strlen(s); reverse(s,s+len);