字符串长度——C++篇

getline()函数

函数原型:
1
getline(istream &is,string &str,char delim)

istream &is:表示一个输入流,例如:cin,string

string &str:字符串变量名

char delim:终止符,默认为回车

函数使用举例:
1
2
3
string a;
getline(cin, a );
cout << a.size() << endl;
默认为回车的代码以及输出结果:

image-20210120120934287

修改为以#作为终止符的代码以及输出结果:

image-20210120121126539

常用代码块:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>

using namespace std;

int main()
{
string a;
getline(cin, a);
cout << a.size() << endl;
return 0;
}
其他:

对于while(getline(cin,str))来讲,while语句的真实判断对象是cin,也就是当前是否存在有效的输入流,如果存在就不会结束循环。


cin.get()函数

函数原型:
1
cin.get(字符数组名,接收长度,结束符)

字符数组名:即定义的char a[8]中的a字符数组名

接受长度:如果该参数的值为7,则最大可判断的字符串长度为6,因为有一个\0的终止符

结束符:自定义结束符,可选参数,默认为’\n’,即回车

1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char a[8];
cin.get(a,9);
cout << strlen(a) << endl;
return 0;
}
注意:

需要注意cin.get()不会把换行符取出删除,影响下一次读入!


cin.getline()函数

函数原型:
1
cin.getline(字符数组名,接收长度,结束符)

字符数组名:即定义的char a[8]中的a字符数组名

接受长度:如果该参数的值为7,则最大可判断的字符串长度为6,因为有一个\0的终止符

结束符:自定义结束符,可选参数,默认为’\n’,即回车

注意:

需要注意cin.getline()会把换行符取出删除,不影响下一次读入!


参考资料