C语言中的字符串处理函数:strcpy, strcat, strchr, strcmp

需积分: 15 2 下载量 35 浏览量 更新于2024-09-12 收藏 11KB TXT 举报
本文主要介绍了四个C/C++中的字符串处理函数——strcpy、strcat、strchr和strcmp,并提供了相应的示例代码。 1. strcpy 函数 strcpy 函数用于将一个字符串复制到另一个字符串中。其函数原型是 `char *strcpy(char *destin, char *source)`。在提供的示例中,`strcpy` 被用来将字符串 "abcdefghi" 复制到字符数组 `string` 中。注意使用 `strcpy` 时要确保目标字符串有足够的空间容纳源字符串,否则会导致内存溢出。 ```c++ #include <stdio.h> #include <string.h> int main(void) { char string[10]; // 目标字符串 char *str1 = "abcdefghi"; // 源字符串 strcpy(string, str1); // 复制源字符串到目标字符串 printf("%s\n", string); // 输出复制后的字符串 return 0; } ``` 2. strcat 函数 strcat 函数用于连接两个字符串。它的函数原型是 `char *strcat(char *destin, char *source)`。在示例中,`strcat` 先将 "Borland" 复制到 `destination`,然后添加空字符串 " ",最后添加 "C++",形成 "Borland C++"。 ```c++ #include <string.h> #include <stdio.h> int main(void) { char destination[25]; // 目标字符串 char *blank = "", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); // 复制 "Borland" strcat(destination, blank); // 连接空字符串 strcat(destination, c); // 连接 "C++" printf("%s\n", destination); // 输出连接后的字符串 return 0; } ``` 3. strchr 函数 strchr 函数用于在一个字符串中查找指定字符首次出现的位置。其函数原型是 `char *strchr(char *str, char c)`。在示例中,`strchr` 用于查找字符串 "Thisisastring" 中字符 'r' 的位置,并输出找到的位置。 ```c++ #include <string.h> #include <stdio.h> int main(void) { char string[15] = "Thisisastring"; char c = 'r'; char *ptr = strchr(string, c); // 查找字符 'r' if (ptr) { printf("The character %c is at position: %d\n", c, ptr - string); } else { printf("The character was not found\n"); } return 0; } ``` 4. strcmp 函数 strcmp 函数用于比较两个字符串的顺序。函数原型是 `int strcmp(char *str1, char *str2)`。它会逐个比较两个字符串的字符,直到找到不同的字符或遇到字符串结束符 '\0'。返回值为0表示字符串相等,大于0表示`str1`在字典顺序上大于`str2`,小于0则相反。 ```c++ #include <string.h> #include <stdio.h> int main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int result1, result2; result1 = strcmp(buf1, buf2); // 比较 "aaa" 和 "bbb" result2 = strcmp(buf1, buf3); // 比较 "aaa" 和 "ccc" if (result1 > 0) { printf("'%s' is greater than '%s'\n", buf1, buf2); } else if (result1 < 0) { printf("'%s' is less than '%s'\n", buf1, buf2); } else { printf("'%s' is equal to '%s'\n", buf1, buf2); } if (result2 > 0) { printf("'%s' is greater than '%s'\n", buf1, buf3); } else if (result2 < 0) { printf("'%s' is less than '%s'\n", buf1, buf3); } else { printf("'%s' is equal to '%s'\n", buf1, buf3); } return 0; } ``` 这些函数是C/C++编程中处理字符串的基本工具,对于理解和操作字符串非常有用。掌握它们有助于编写处理字符串的高效代码。