通过指针传参形式分别实现 mystrcat mystrcmp 以及mystrcpy函数
时间: 2024-09-15 21:14:01 浏览: 39
用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数
在C语言中,`mystrcat`, `mystrcmp`, 和 `mystrcpy` 函数是字符串操作的常见示例,通常用于处理字符数组。这里我们将通过指针来实现它们:
1. **mystrcat** (连接两个字符串):
```c
void mystrcat(char* dest, const char* src) {
if (!dest || !src) {
return;
}
// 找到目标字符串的结束位置
int dest_len = strlen(dest);
// 将源字符串复制到目标字符串的末尾,直到遇到'\0'
for (; *src != '\0'; ++src) {
dest[dest_len] = *src;
++dest_len; // 移动到下一个内存位置
}
// 确保添加'\0'标识字符串结束
dest[dest_len] = '\0';
}
```
2. **mystrcmp** (比较两个字符串):
```c
int mystrcmp(const char* str1, const char* str2) {
while (*str1 && *str2 && *str1 == *str2) {
++str1;
++str2;
}
// 如果其中一个字符串结束而另一个未结束,返回非零值表示不相等
if (*str1 == '\0') {
return *str2 == '\0' ? 0 : -1; // str1结束且str2未结束,则str1小于str2
} else if (*str2 == '\0') {
return 1; // str1未结束且str2结束,则str1大于str2
} else {
return *str1 - *str2; // 字符不相等,直接比较
}
}
```
3. **mystrcpy** (复制字符串):
```c
void mystrcpy(char* dest, const char* src) {
if (dest && src) { // 防止空指针
while (*src != '\0') {
*dest++ = *src++; //逐个复制字符
}
*dest = '\0'; // 添加终止符
}
}
```
阅读全文