字符串长度【语法题】【字符串的多种输入方式】

字符串长度

给定一行长度不超过 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)

posted @ 2023-03-06 11:48  Keith-  阅读(92)  评论(0编辑  收藏  举报