字符串长度
给定一行长度不超过 100 的非空字符串,请你求出它的具体长度。
输入格式
输入一行,表示一个字符串。注意字符串中可能包含空格。
输出格式
输出一个整数,表示它的长度。
数据范围
1≤字符串长度≤100
字符串末尾无回车
输入样例:
I love Beijing.
输出样例:
15
代码
点击查看代码
#include<iostream>
using namespace std;
int main(){
string s;
getline(cin,s);
cout << s.size();
}
小结
- 按整行读到string ,推荐用 方法2 getline(cin, string)
- 按整行读到char[] ,推荐用 方法4 cin.getline(char*,size)
- 读单个字符串,推荐用 cin>>
按行读
方法2 getline(cin, string) 和 方法4 cin.getline(char,size) 会读到回车为止,并且会把回车丢弃。
方法3 cin.get(cin, char) 不丢弃回车
其他: fgets 会多读入一个回车,比较麻烦
读字符串
cin >> char* 会自动忽略起始的空格/回车/tab,结尾如果有回车空格,不会丢弃。 ” aa” => “aa”
scanf("%s", char*) 同上
cin >> string 同上
//忽略前面的,因此不妨碍多次输入
getline和cin.getline的区别
getline是string的成员函数,因此按整行读到string ,推荐用 方法2 getline(cin, string)
cin。getline第一个参数是要存储字符串的数组的名称。第二个参数是数组的大小。当 cin.getline 语句执行时,cin 读取的字符数将比该数字少一个,为 null 终止符留出空间,cin.getline()在使用的时候,必须传入字符数组,并且还需要指定字符数组的长度,非常的不方便,有时候我们并不知道我们要操作的字符串到底有多长,因此能用getline就用getline整行读到char[] ,推荐用 方法4 cin.getline(char*,size)