strcat的模拟实现
时间: 2023-12-18 18:05:55 浏览: 37
strcat是一个C标准库函数,用于将一个字符串追加到另一个字符串的末尾。它的原型如下:
```c
char *strcat(char *dest, const char *src);
```
其中,dest是目标字符串,src是要追加的字符串。
下面是strcat的模拟实现:
```c
char *my_strcat(char *dest, const char *src) {
char *p = dest;
while (*p) {
p++;
}
while (*src) {
*p++ = *src++;
}
*p = '\0';
return dest;
}
```
这个函数首先找到dest字符串的末尾,然后将src字符串中的内容逐一拷贝到dest字符串的末尾,直到遇到src字符串的结束标志'\0'。最后在dest字符串的末尾添加一个结束标志'\0',并返回dest字符串的地址。
需要注意的是,dest字符串必须有足够的空间来存放两个字符串的内容,否则会导致内存溢出。
相关问题
strcat模拟实现不写函数
好的,那我来给你模拟实现一下strcat函数:
```c
char* my_strcat(char* dest, const char* src) {
char* p = dest;
while (*p != '\0') {
p++;
}
while (*src != '\0') {
*p = *src;
p++;
src++;
}
*p = '\0';
return dest;
}
```
这个实现基本上和标准库的strcat函数是一致的,只是我把函数名改成了my_strcat,同时去掉了函数声明和头文件包含。使用时,你可以直接把这个函数的代码复制到你的程序中,然后像使用strcat函数一样调用它即可。
c语言模拟实现strcat的功能
可以使用以下代码实现strcat的功能:
```c
#include <stdio.h>
#include <string.h>
char* my_strcat(char* dest, const char* src) {
char* p = dest + strlen(dest);
while (*src) {
*p++ = *src++;
}
*p = '\0';
return dest;
}
int main() {
char str1[20] = "hello";
char str2[] = "world";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
这个函数将src字符串的内容追加到dest字符串的末尾,并返回dest字符串的地址。