1.基本知识:
字符串是连续的字符序列, 以空字符‘\0‘作为终止符.
字符串的长度指所有字符的数量,但不包括‘\0‘.
存储字符串的数组要比字符串长度多一个元素,以容纳字符串终止符.
char ch[] = "shi"; cout << sizeof(ch) << endl //数组大小:4,sizeof来计算数组的大小 << strlen(ch) << endl; //字符串长度:3
在调用 strcat()之前,可以采用标准函数 strlen()进行测试,以确保长度没有问题,函数 strlen()返回其字符串参数的长度,如下所示:
if ( sizeof(str1) >= ( strlen( str1 ) + strlen( str2 ) + 1 ) ) strcat( str1, str2 );
2.两种初始化方式
//下面两者是等价的: char str1[30] = "Let‘s go"; // 字符串长度:8;数组长度:30 char str1[30] = { ‘L‘, ‘e‘, ‘t‘, ‘\‘‘, ‘s‘,‘ ‘, ‘g‘, ‘o‘, ‘\0‘ };
不可以对字符串采用以下的赋值操作:
char str[20]; str="shi"; // incompatible types in assignment of ‘const char [4]’ to ‘char [20]’
可以通过strcpy来实现,也要满足数组大小>=strlen(str)+1
原文:https://www.cnblogs.com/Stephen-Qin/p/10639061.html