C语言字符串函数:strcpy, strcmp, strlen, strcat详解

需积分: 45 8 下载量 101 浏览量 更新于2024-09-15 1 收藏 4KB TXT 举报
本文主要介绍了C语言中的四个字符串处理函数:strcpy、strcmp、strlen和strcat,它们在C语言编程中扮演着重要的角色。 1. strcpy函数:用于复制字符串。这个函数将源字符串(strScr)的内容完全复制到目标字符串(strDest)中。函数原型如下: ```c char *strcpy(char *strDest, const char *strScr); ``` 在这里,`strDest`是目标字符串,`strScr`是源字符串。函数返回的是目标字符串的地址,即`strDest`。需要注意的是,`strDest`必须足够大以容纳`strScr`的所有字符,包括结束的空字符`\0`。在VC6.0环境下,可以使用如下的代码示例: ```c #include<stdio.h> #include<assert.h> char* strcpya(char* strDest, const char* strScr) { char* address = strDest; assert((strDest != NULL) && (strScr != NULL)); while (*strScr) { *strDest++ = *strScr++; } *strDest = '\0'; return address; } void main() { char str1[100] = "ilove"; char str2[50] = "China"; strcpya(str1, str2); printf("%s\n", str1); } ``` 2. strcmp函数:用于比较两个字符串。这个函数根据ASCII码值对字符串进行逐个字符的比较,直到遇到不同的字符或者遇到空字符`\0`。函数原型如下: ```c int strcmp(const char *str1, const char *str2); ``` 如果`str1`小于`str2`,`strcmp`返回一个负整数;如果`str1`等于`str2`,则返回0;如果`str1`大于`str2`,返回一个正整数。例如: ```c #include<stdio.h> #include<string.h> int main() { char str1[] = "hello"; char str2[] = "world"; int result = strcmp(str1, str2); if (result < 0) printf("str1 is less than str2.\n"); else if (result > 0) printf("str1 is greater than str2.\n"); else printf("str1 and str2 are equal.\n"); return 0; } ``` 3. strlen函数:用于计算字符串的长度,不包括结束的空字符`\0`。函数原型如下: ```c size_t strlen(const char *str); ``` 返回值是字符串的长度,类型为`size_t`。下面是一个简单的示例: ```c #include<stdio.h> #include<string.h> int main() { char str[] = "Hello, World!"; size_t length = strlen(str); printf("The length of the string is: %zu\n", length); return 0; } ``` 4. strcat函数:用于连接两个字符串。这个函数将源字符串`strScr`追加到目标字符串`strDest`的末尾。函数原型如下: ```c char *strcat(char *strDest, const char *strScr); ``` `strcat`会将`strScr`中的所有字符(包括结束的空字符)添加到`strDest`的末尾,所以确保`strDest`有足够的空间存储附加的字符。以下是一个使用`strcat`的例子: ```c #include<stdio.h> #include<assert.h> char* strcat_a(char* strDest, const char* strScr) { char* address = strDest; assert((strDest != NULL) && (strScr != NULL)); while (*strDest) { strDest++; } while (*strDest++ = *strScr++) { NULL; } return address; } int main() { char str1[100] = "ilove"; char str2[50] = "China"; strcat_a(str1, str2); printf("%s\n", str1); return 0; } ``` 这四个函数是C语言中处理字符串的基本工具,理解并熟练掌握它们对于编写C程序至关重要。在实际编程中,应特别注意防止缓冲区溢出,确保目标字符串有足够的空间容纳源字符串。同时,记得在使用这些函数前,验证输入的指针是否有效,以避免潜在的运行时错误。