C语言中的字符串
1.字符串的输入和输出:
在C语言中是没有标示字符串的关键字的,C语言中用字符数组表示字符串
如果要输出字符串 那么使用 %s 来进行输出
例: printf("%s\n",str); printf("%s\n",&str[0]);
同样用%s接收键盘上输入的一个字符串
例: scanf("%s",str); scanf("%s",str[0]);
注意:
1) 以%s进行输入时,如果输入的字符串有空格,则空格之后的字符无法被接收保存(以%s的格式输入,scanf遇到空格,就结束了)
2) 输入的字符串的长度要小于数组的长度(如果大于数组长度是可以输入的,但是字符精度无法保证)
2.字符串的处理函数
首先想要使用字符串函数需要引入
include <stdio.h>
include <string.h>
1)字符串输出函数 puts :格式 puts(str)
原先打印一个字符串
char str[]="abc";
printf("%s\n",str);
现在
puts(str);
特点:
puts函数可以帮我们换行
实参可以不是数组的首地址,例如 puts(&str[1]);
2)字符串输入函数 gets 格式:gets(数组名)
原来接收一个字符串
char str1[100];
scanf("%s",str1); //缺陷,输入字符串的时候不能有空格
现在
gets(str);
注意:
使用gets会给出一个警告: warning : this program uses gets(),which is unsafe
这个警告是在说:gets依然存在越界问题,例如往长度为100的数组内传入120个字符
使用gets 是可以接收空格的
3) 字符串链接函数 strcat :格式: strcat(char[] oldStr,char[] newStr);
链接一个字符串,把两个字符串链接成一个字符串
把字符串链接在oldch后面
oldStr的长度要足够,至少能够保持下 oldStr+newStr
4) 字符串拷贝函数 strcpy :格式 strcpy(char[] oldStr,char[] newStr);
把newStr拷贝到oldStr中,newStr会覆盖掉oldStr中的内容
5) 字符串比较函数 strcmp :格式 strcmp(char[] str1,char[] str2);
比较两个字符串的大小规则:
比较字符的ASCII码值 / 比较在字典中出现的顺序
比较的过程:逐个取两个字符串的字符对应位相比较,从第一位不相同的位开始,就能确定字符串大小
函数有返回值,当返回值大于0 则 str1大于 str2 反之则小于
6) 测试字符串长度的函数 strlen :格式 strlen(char[] str)