概念
我们可以把字符串储存在char类型的数组中,如果char类型的数组末尾包含一个表示字符串末尾的空字符\0,则该数组中的内容就构成了一个字符串
头文件
#include<string.h>
初始化
char str[n];
char strr[] = {'I',' ','a','m',' ','h','a','p','p','y'};
char str[]="jsbuf";//可以加上花括号,无所谓
/char str[];
str = "I am happy"; ///错误,字符数组的赋值只能按元素一一赋值(错误的原因: C语言并没有提供可以直接操作字符串的运算符;“=”可以用于其他数据类型的赋值,但是不可以直接给字符串赋值。
BUT我们可以用指针
char *str=”xju nb”;//但之后只能用指针的方法读取,最好还是开数组。
常见库函数
memset(str,’0’,sizeof(str));//将’0’赋值到str数组中。
strcpy(str,"hello,world");//将"hello,world"赋值给str(且清空之前str的所以值)。
strncpy(str,"hello,world",n);//取"hello,world"前n个字符赋值str。
如果"hello,world"字符串长度小于n,则拷贝完字符串后,在dest后追加0,直到n个
如果"hello,world"的长度大于等于n,就截取src的前n个字符,不会在dest后追加0。
提前开好str大小防止溢出。
strlen(str)//返回值为str长度,别用sizeof(str),不同编译器分配内存不同。
strcat(str1,str2)//将str2拼接到str1尾部。
strcmp(str1,str2)//从第一个字符依次进行比较,比较字符ASCII码大小。
strncmp(str1,str2,n)//同上,从前n个字符开始比较。
strchr(str,c)//从str头查找c,返回其位置。
strrchr(str,c)//从str尾查找c,返回其位置。
strstr(str,substr)//从str头查找字串substr位置,无返回0.