读入
char s[100];
// 到空格、换行等就会结束
scanf("%s", s);
cin >> s;
// 不受空格限制
char s[100];
fgets(s, 100, stdin);
cin.getline(s, 100);
// 或者
string s;
getline(cin, s);
输出
printf("%s\n",s);
cout << s;
// 只能用于char[] s
puts(s);
函数
// 只能计算字符数组,或者s.c_str()
strlen(s);
// 比较字典序 返回-1,0,1
strcmp(s1, s2);
// 复制b给a
strcpy(a, b);
// 计算字符串中某个字符的数量 e.g.空格
int cnt = count(sentence.begin(), sentence.end(), ' ') + 1;
string
cin >> s;
// 使用printf打印string需要使用.c_str()
printf("%s", s.c_str());
puts(s);
cout << s;
s.empty();
// O(1)的
s.size();
s.length();
// 截取字符串中的子串
s.substr(4); // 从下标4开始一直到结束
s.substr(5, 3); // 从下标5开始,3个字符
// to_string(),stoi(),stod(),stof(),stol(),stoll(),stoul(),stoull()
/*
当把string对象和字符字面值及字符串字面值混在一条语句中使用时,
必须确保每个加法运算符的两侧的运算对象至少有一个是string
*/
// 遍历 2种方法
// 1.当成字符数组
// 2.
for (char c: s) {
}
for (auto c: s) {
}
for (char &c: s) {
}
做题时遇到的知识点
#include <sstream>
// ssin 类似 cin
stringstream ssin(s);
while (ssin >> s) {
if (s == a) cout << b << " ";
else cout << s << " ";
}
// sscanf
sscanf(s, "%d%d%s%lf", &a, &b, &c, str);
// 最后一个字符
s.back()
// 取出最后一个字符,原字符串中的最后一个字符会被去掉
s.pop_back()