一.输出字符串——puts
#一般形式#
puts(字符数组)
#作用#
将一个字符串输出到终端 -> 将字符串打印出来(遇\0结束)
#示例#
char str[20]="China";
puts(str);
二.输入字符串——gets
#一般形式#
gets(字符数组)
#作用#
输入一个字符串到字符数组(一个字符为一个数组元素)
注:使用gets函数可以获得整一行的输入(包括空格)
#潜在问题#
· 使用gets可能是不安全的
· 使用gets没法限制输入的字符串长度,则有可能造成数组内存在越界,产生缓冲区溢出
(使用scanf用%s输入字符串时也会出现此问题)
· 此时,可用fgets来替代gets | char *fgets(char *buf, int bufsize, FILE *stream)
| 当输入字符长度超过数组开辟的空间长度时, 会在读取第(n-1)个字符时自动停止
#示例#
char s[10];
fgets(s,10,stdin);
puts(s);
printf("%d\n",sizeof(s));
printf("%d\n",strlen(s));
三.字符连接函数——strcat
#一般形式#
strcat(字符数组1,字符数组2)
#作用#
其作用是把两个字符串连接起来,把字符串2接到字符串1#的后面
结果放在字符数组1中(故而要求字符数组1的空间要足够大)
#示例#
char str1[30]="People";
char str2[]="China";
printf("%s", strcat(str1,str2));
四.字符串复制函数1——strcpy
#一般形式#
strcpy(字符数组1,字符串2)
#作用#
将字符串2复制到字符数组1中(故字符数组1要足够大)(遇\0即停止复制)
#示例#
char str1[10],str2[]="China";
strcpy(str1,str2);
printf("%s\n", str1);
strcpy(str1,"China"); //等价。故括号后既可以放数组名也可以放字符串常量
printf("%s", str1);
四.字符串复制函数2——strncpy
#一般形式#
strncpy(str1,str2,2);
#作用#
将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符 (复制的字符个数n不应多于str1中原有的字符)
#示例#
char str1[10],str2[]="China";
strncpy(str1,str2,2);
五.字符比较函数——strcmp
#一般形式#
strcmp(字符串1,字符串2)
#作用#
比较字符串1和字符串2
#比较规则#
· 将两个字符串自左至右逐个字符相比,直到出现不同的字符或遇到’\0’为止
· 比较的结果由函数值带回。
| 字符串1=字符串2 则返回0
| 字符串1>字符串2 则返回一个正整数
| 字符串1<字符串2 则返回一个负整数
#示例#
if(str1>str2)
printf("yes");//Error
if(strcmp(str1, str2) > 0)
printf("yes");//Correct
六.计算字符长度函数——strlen
#一般形式#
strlren(字符数组/字符串常量)
#作用#
测试字符串长度的函数(函数的值为字符串中的实际长度)
#示例#
char str[10]="China";
printf("%d\n",strlen(str));
printf("%d",strlen("China"));