C++字符串的输入方式

C++字符串的输入方式

1、cin输入字符串

接收一个字符串,遇到空格和tab键结束接收,回车键表示输入结束;此外定义a[20],则字符串长度要小于20,最后有个’\0’(否则输入超过20的连续字符串会报错)。

//实例代码
    char a[20];
    cin >> a;
    cout << a << endl;
    cout << a[3] << endl;
    cout << a[19] << endl;
//运行结果
abcd dhfdkf     dsdfdsfsafgfdfgfdgdsa//输入字符串
abcd//输出a
d//输出a[3]


//实例代码
    string a;
    cin >> a;
    cout << a << endl;
    cout << a[3] << endl;
    cout << a[19] << endl;
//运行结果
abcd dhfdkf     dsdfdsfsafgfdfgfdgdsa//输入
abcd
d   
//报错:Expression: string subscript out of range,a[19]溢出了

2、cin.get()输入字符

接收第一个字符并赋值给ch,不论第一个字符是空格、tab键抑或是回车键,以下四种不同情况输出分别是普通字符,空格符,tab键和回车符。

//实例代码
    char ch;
    ch = cin.get();
    cout << ch;
    cout << "=============================";
//运行结果(输入字符串)
addfffe dff     ddf
a=============================
//运行结果(输入空格)
 abcdfgav
 =============================
//运行结果(输入Tab)
        adfgjffdss
        =============================
//运行结果(输入回车)


=============================

3、cin.get(字符数组名,接收字符数)输入字符串

cin.get()接收一行字符串包括空格和tab键(接收数量需减一,留一个位置给‘\0’),其中接收字符数一定要小于等于定义字符数组大小,不然一旦输入字符串长度大于数组大小会报错。

//实例代码
    char a[20];
    cin.get(a, 20);
    cout << a << endl;
    cout << a[5];
//运行结果
abcdef dfsf//输入字符串
abcdef dfsf
f

cin.get()不传入参数是为了吃掉输入流中的回车。(比较下面两组输入输出)

//实例代码
	char a[20];
    char b[20];
    cin.get(a, 20);
    cin.get();
    cin.get(b, 20);
    cout << a << endl;
    cout << b;
//运行结果
abcd//输入
qwer//输入
abcd
qwer
//实例代码
    char a[20];
    char b[20];
    cin.get(a, 20);
    cin.get(b, 20);
    cout << a << endl;
    cout << b;
//运行结果(注意此时cout << b与cout << '\r'等价而非'\n',重要!!!)
abcd//输入
abcd

4、cin.getline()输入字符串

cin.getline()传入两个参数时与cin.get()类似

//实例代码
	char a[20];
	cin.getline(a, 20);
	cout << a;
//运行结果
abdc dfda//输入字符串
abdc dfda

与cin.get()区别在于当cin.getline()传入第三个参数时cin.getline(a,20,’f’),接收字符串到’f’为止

//实例代码
	char a[20];
	cin.getline(a, 20, 'f');
	cout << a;
//运行结果
abdc dfda//输入
abdc d

5、getline()输入字符串(#include< string >)

getline(cin,字符串名字),getline()接收一个字符串,包括空格与tab键,唯一要注意的是,getline()属于string流,求字符串长度时不能用strlen(),应该用str.length()。

//实例代码
	string str;
	getline(cin, str);
	cout << str << endl;
//运行结果
abcd efgh       ght//输入字符串
abcd efgh       ght

6、gets_s()输入字符串

gets_s(字符串名字)输入字符串可以接收空格和tab键,回车结束

//实例代码
	char a[20];
	char b[20];
	gets_s(a);
	gets_s(b);
	cout << a << endl;
	cout << b;
//运行结果
qwer qwer       qwer//输入
abcd abcd       abcd//输入
qwer qwer       qwer
abcd abcd       abcd

7、getchar()输入字符

getchar()接收字符串的第一个字符包括(空格、tab键、换行符)

//实例代码
	char a;
	a = getchar();
	cout << a;
//运行结果
abcd
a

注意所有字符串的输入(包括cin.get()、cin.getline()、getline、gets_s),如果接在cin>>a输入流后,中间必须增加cin.ignore()用以吞掉换行符。

本文参考这篇文章C++ 字符串的输入的几种方法_YULIU_的博客-CSDN博客_c++字符串输入函数然后经过我自己总结而成,如有不足请多指教!!!

  • 19
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值