读入字符串的几种方法
总结:
1.cin:cin不能遇到空格或者换行
2.getline:不能遇到回车(包括string的getline(cin,s) 和 char的cin.getline(s,100))
3.fgets():不能遇到换行。
案例一
题目:给定一行长度不超过 100 的非空字符串,请你求出它的具体长度。
输入:输入一行,表示一个字符串。注意字符串中可能包含空格。
输出:输出一个整数,表示它的长度。
输入样例:
I love Beijing.
输出样例:
15
getline的写法
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s;
getline(cin,s);
cout << s.size() ;
return 0;
}
cin.getline的写法
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[110];
cin.getline(s,110);
cout << strlen(s);
return 0;
}
fgets写法
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[110];
int c = 0 ;
fgets(s,110,stdin);
for(int i = 0 ; s[i] && s[i] != '\n' ; i++)
{
c++;
}
cout << c;
}
scanf
scanf也不读入空格和回车;