1?求字符串的長度

運(yùn)行結(jié)果: strlen(str1)=38,sizeof(str1)=4
strlen(str1)=45, sizeof(str1)=100
strlen(str1)=53, sizeof(str1)=5
如果字符的個(gè)數(shù)等于字符數(shù)組的大小,那么strlen()的返回值就無法確定了,
例如 ? ? char str[6] = "abcxyz"; strlen(str)的返回值將是不確定的。因?yàn)閟tr的結(jié)尾不是0,strlen()會(huì)繼續(xù)向后檢索,
直到遇到'\0',而這些區(qū)域的內(nèi)容是不確定的。
2?strcpy_s? 字符串復(fù)制
strcpy_s(dest,strlen(str1)+1, str1);
dest?目標(biāo)字符串
strlen(str1)+1? 復(fù)制的長度
str1?復(fù)制的源字符串
strcpy不安全? vs?里面用strcpy_s?替代

3. strcat? 在字符串尾拼接字符串
格式:strcat(目標(biāo)字符串?,源字符串) //?
?將源字符串連接到目標(biāo)字符串的尾部格式:
strncat(目標(biāo)字符串?,源字符串,長度n)//將源字符串前n個(gè)連接到目標(biāo)字符串的尾部
注:①被追加的目標(biāo)字符串? 需要有足夠空間?? ?
②追加中 先去掉?目標(biāo)字符串中的 \0 再進(jìn)行追加將?源字符串中的\0也追加上
③有限追加注意:有限追加也會(huì)將\0追加
4?strcmp?比較函數(shù)
?格式:strcmp(字符串 1,字符串 2)// 比較1與2??
格式:strcmp(字符串 1,字符串 2,比較長度n) // 比較1與2前n個(gè)字符串
5?strchar
在字符串中查找字符的位置 strchr函數(shù):
格式: strchar(字符串,‘字符’) // 失敗返回空的值(UNLL)
?注意 :①找漢字時(shí)格式 “ 漢字 ”,是雙引號非單引號? ? ? ? ?
? ? ? ?② 字符使用單引號引起來??
6?strstr
在字符串中查找另外字符串的位置 strstr函數(shù):? ?
格式 strstr(源字符串,“匹配字符串”)???
?注意: 匹配字符串使用雙引號引起來
7?自己寫的copy?函數(shù)
void copy(char * dest, char *source) {
int i = 0;
char *start = dest;
while (*dest!='\0')
{?
source[i] = *dest;
printf("s=%c\n", *dest);
++i;
dest= start + i;
}
printf("i=%d\n", i);
source[i] = '\0';
printf("source=%s\n",source);
}