周游C语言教程11 - 字符串
这是周游C语言的第十一篇教程,你将在这篇文章里认识字符串。
字符串
字符串是一组由ascii码组成的,以\0做结尾的字符集合。其本质是一组字符数组,且最后一个元素为\0。\0
是ascii中的表示,其具体数值为0。
以下几种字符串的定义完全等效。
char str[] = "apple";
char str[6] = {'a','p','p','l','e','\0'};
char *str = "apple";
C语言中用双引号""
表示字符串,用''
表示字符,字符的具体数值由ascii码决定。
字符串中使用\
的转义字符和printf中\
的转义字符意义完全相同。
字符串相关函数
首先要注意的是,所有字符串相关函数都是使用\0
来判断字符串的结尾。所以在使用这些函数时必须确保你所输入的char指针最后一位为0。
函数名 | 作用 |
---|---|
strlen(s1) | 返回字符串s1的长度 |
strcpy(s1,s2) | 将字符串s2复制到字符串s1中 |
strcat(s1,s2) | 将s2拼接到s1的尾部 |
strcmp(s1, s2) | 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0 |
strchr(s1,ch) | 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置 |
strstr(s1,s2) | 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置 |
#include <stdio.h>
#include <string.h>
int main()
{
char str1[14] = "apple";
char str2[14] = "bananab ";
char str3[14];
printf("%s的长度是%d\n", str1, strlen(str1));
strcpy(str3,str1);
printf("str3:%s\n", str3);
strcat(str3, str2);
printf("str3:%s\n", str3);
return 0;
}