之前做华为的编程题,三道题,三道全是处理字符串。。。真是怕什么来什么。。。。。赶紧整理一下做个备忘。。。
输入函数 | 说明 |
---|---|
cin | 遇“空格”、“TAB”、“回车”结束 |
cin.get() | 只能获取一个字符 |
cin.get(字符数组名, 接收字符数目) | 用来接收一行字符串,可以接收空格 |
cin.getline() | 接受一个字符串,可以接收空格并输出 |
getline() | 接受一个字符串,可以接收空格并输出,需包含“#include |
gets() | 接受一个字符串,可以接收空格并输出 |
getchar() | 接收一个字符 |
分割字符串,一个麻烦的做法是:根据 str.substr(起始位置, 子字符串长度) 函数可以将 string 类型的对象进行分割,即记录每个字字符串的起始位置并根据分割字符记录子字符串的长度。
[cc lang = “cpp” escaped = “true”]
c++
vector
string s;
getline(cin, s);
int ind_b = 0, n = 0;
for (int i = 0; i < s.size(); i++) {
n++;
if (s[i] == ‘ ‘) {
ss.push_back(s.substr(ind_b, n-1));
ind_b = i+1;
n = 0;
}
else if (i == s.size()-1) {
ss.push_back(s.substr(ind_b, n));
}
}
[/cc]