【C++问题总结 1.字符串】

一、字符串的输入输出方法

1.cin.getine(参1,参2,参3)

(1)需要搭配字符数组使用,不能和string联用,因为string长度不固定;

(2)cin.getline(char,size,)中size包含‘\0’的一个长度,所以设置size<=数组长度;

char位置放字符数组名,或者字符指针。

(3)默认回车为终止输入键;

(4)cout<<数组名<<endl; / /即可输出字符串;

#include<iostream>
using namespace std;
int main()
{
	char line[5];
	cin.getline(line,5);
	cout << line  << endl;
	return 0;
}

2.cin

(1)可以用于输入任何类型的元素,不接收空格(用上本键后,其后元素输出不显示)、Tab键(同上)和回车(结束输入)。

(2) cout<<数组名<<endl; / /即可输出字符串;

字符串类型的输入

#include <iostream>
#include <string>     //
using namespace std;
int main()
{ 
	string a;
	cin >> a;
	cout << a<<endl;
	return 0;

}

结合for循环输入

 (实践发现能输入的有效长度不超过数组长度)

#include <iostream>
using namespace std;
int main()
{
    char a[5];
    for(int i=0;i<5;i++)
      cin>>a[i];
    for(int i=0;i<5;i++)  
      cout<<a[i];
    return 0;
}

字符数组的整体输入

(实践发现,能输入的有效长度小于数组长度) 

#include <iostream>
using namespace std;
int main()
{
	char a[5];
	cin >> a;//整体输入,输入的有效长度应<=4,有效长度即不包括空格,回车和Tab键;
	cout << a;//整体输出;
	return 0;
}

3.gets(str)         (现用gets_s(str)   )

(1)需要再加头文件 #include <cstdio>

  (2)str为数组名或指针变量;

(3)同cin.getline()一样,可输入包含空格字符的字符串,以回车结束;

(4)系统自动添加‘\0’,所以输入长度小于字符数组长度;

(5)puts(str)  输出,输出完自动换行,要求字符数组(不是字符串类型)结尾是‘\0’;

  eg:puts(str1,str2);//错误,一次只能输出一个字符串;

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	char str[10];
	gets_s(str);  
	puts(str);
	return 0;

}

 //gets()可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值(来自CSDN搜索),所以改用gets_s(char,size),在VS里size写不写都可以运行。(来自自我实践)

以上文字如有任何问题,欢迎大家评论纠正!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迎风809

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值