C语言提供了许多操作字符串的函数,这些函数都包含在<string.h>库中,今天我们就来详细讲讲这些函数。
1、strlen()
strlen()是库中一个计算字符串长度的函数,用来返回字符串 ' \0 '之前的字符个数,不包括 ' \0 ',注意strlen必须以' \0 '结束。
char str[10] = "abcde";
int len_str = strlen(str); // 5
2、strcpy
strcpy是库中一个拷贝字符串函数,将source字符串,拷贝到dest目标字符串中。拷贝规则是将' \0 '及之前的字符串拷贝过去。拷贝的时候,source字符串中一定要有' \0 '。
1、strcpy()
strcpy是一个将source字符串全部拷贝到dest中,包含' \0 ',那么我们拷贝的时候就一定要顾及source字符串的大小和dest字符串的大小,否则会出现很糟糕的现象。
char str1[10] = "abcde";
char str2[10];
strcpy(str2, str1); //此时str2中就是abcde
char str1[10] = "abcde";
char str2[15] = "hello world";
strcpy(str2, str1);//此时str2中仍是abcde
2、strncpy()
由于strcpy拷贝的时候可能会出现dest数组不够大,或者并不是想将source中所有字符都拷贝过去,那么我们可以用strncpy拷贝,这个就会增加一个参数:代表拷贝过去的字符个数。
char str1[10] = "abcdefg";
char str2[20] = "hello world";
strncpy(str2, str1, 3);//此时str2为"abclo world"
由此说明,strncpy其实起到的是一个覆盖作用。 将拷贝过去的字符,覆盖原有字符串的所处位置