字符串--------留给自己看

1、scanf
charstr[15];
scanf("%s",str);
abc 123
1)不读入空格和回车,从空格处结束
2)输入字符串长度超过字符数组元素个数不报错
3)当输入项为字符指针时,指针必须已指向确定的有足够空间的连续存储单元
4)当为数组元素地址时,从此元素地址开始存放
printf("%s",地址值)

输出时遇到第一个'\0'为止


2、gets和puts函数
开头必须stdio.h;
Gets输入时包括空格符,遇到回车结束

Puts遇到第一个‘\0’结束,自动加入换行符


3、fgets
而使用fgets函数时,只要第二个参数正好等于第一个参数传给它的数组的字节个数,那么fgets函数不会写出数组边界。所以,fgets函数是最好的选择。
fgets(...)读入文本行时的两种情况。
1)如果n大于一行的字符串长度,那么当读到字符串末尾的换行符时,fgets(..)会返回。并且在s的最后插入字符串结束标志'\0'。而s缓冲区剩余的位置不会再填充。
example:
123abc
fgets(s,10,fp);
此时,读入七个字符,123abc\n,实际上还有最后的'\0',所以,strlen(s)=7;如果要去除末尾的\n,s[strlen(s)-1]='\0';便可。
2)如果n小于等于一行的字符串的长度,那么读入n-1个字符,此时并没有读入\n因为并没有到行尾,同样在最后会插入'\0'.
example:
123abc
char s[5];
fgets(s,5,fp);

这时读入4个字符,123a,并没有换行符,所以strlen(s)=4


4、cin

使用空白(空格,制表符和换行符)来定字符串的界的


5、getline()
读入整行数据,它使用回车键输入的换行符来确定输入结尾。
调用方法: cin.getline(str, len);

第一个参数str是用来存储输入行的数组名称,第二个参数len是要读取的字符数。


6、get()
调用方法:cin.get(str, len);
getline将丢弃换行符,而get()将换行符保留在输入序列里,但是字符串中并没有换行符。
使用cin.get()输入多行数据时,中间可以使用get()消除换行符。
int main()
{
char str1[30], str2[30];
cin.get(str1, 30);
cin.get();
cin.get(str2, 30);
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值