src 整个字符串。C 语言中提供了 strncat 函数来解决这个问题:
char *strncat(char *dst , char const *src , size_t len);
strncat 函数从 src 中最多复制 len 个字符到目标数组 dst 后面,并且,strncat 总是在结果字符串后面添加一个 NUL 字节,而且不会像 strncpy 函数那样对 dst 剩余的空间用 NUL 进行填充。
五、字符串比较
C 语言中使用库函数 strcmp 来进行字符串比较。strcmp 函数会对被比较的两个字符串进行逐字符地比较,直到发现不匹配为止:最先不匹配的字符中较小的那个字符所对应的字符串即被认为小于另一个字符串;如果两者所有字符都匹配,则认为这两个字符串相等;
int strcmp(char const *s1 , char sonst *s2);
该函数的返回值如下:
1)s1 小于 s2,返回一个负值;
2)s1 等于 s2,返回 0;
3)s1 大于 s2,返回一个正值。
char *strncmp(char const *s1 , char const *s2 , size_t len);
可以使用 strncmp 函数限定比较的字符的个数,返回值与 strcmp 一样,但是只针对前 len 个字符进行比较。
六、字符串的查找
6.1 查找一个字符
可以使用 strchr 函数或 strrchr 函数来在一个字符串中查找一个特定的字符:
char *strchr(char const *str,int ch); // int ch 是字符的ASCII码值
char *strrchr(char const *str,int ch);
函数 strchr 在字符串 str 中查找字符 ch 第一次出现的位置,并返回一个指向该位置的指针;如果没有找到相应的字符,则返回一个 NULL 指针。函数 strrchr 在字符串中查找字符 ch 最后一次出现的位置,并返回指向该位置的指针。
6.2 查找任意几个字符
可以使用 strpbrk 函数来查找任何一组字符第一次在字符串中出现的位置:
char *strpbrk(char const *str , char const *group);
这个函数返回一个指向字符串 str 中第一个匹配 group 中任何一个字符的字符位置,如果没有匹配到,则返回一个 NULL 指针。
6.3 查找一个子串
可以使用 strstr 函数来在一个字符串中查找一个子串:
char *strstr(char const *str1 , char const *str2);
这个函数在 str1 中查找整个字符串 str2 第一次出现的起始位置,并返回一个指向该位置的指针;如果 str2 并没有完整的出现在 str1 中,则函数将返回一个 NULL 指针;如果 str2 是一个空字符串,则返回str1.
参考资料
《C和指针》
《C程序设计语言 第二版》