自己实现strcat()
时间: 2023-11-27 13:03:31 浏览: 41
strcat()是一个用于将一个字符串拼接到另一个字符串末尾的函数。我们可以自己实现一个简单的strcat()函数,代码如下:
```c
#include <stdio.h>
void my_strcat(char *dest, const char *src) {
// 找到dest字符串的末尾
while (*dest) {
dest++;
}
// 拼接src字符串
while (*src) {
*dest++ = *src++;
}
// 添加字符串结束标志
*dest = '\0';
}
int main() {
char str1[100] = "Hello, ";
char str2[] = "world!";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
在上面的代码中,我们使用两个while循环来实现字符串的拼接。第一个while循环用于找到dest字符串的末尾,第二个while循环用于拼接src字符串。最后,我们在dest字符串的末尾添加了一个字符串结束标志'\0'。
注意,我们在函数参数中使用了const关键字,这是因为src指针指向的字符串不应该被修改。如果我们尝试修改src指针指向的字符串,编译器会给出一条警告。
相关问题
封装函数实现strcat
好的,我可以为您提供一个简单的封装函数来实现strcat:
```C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* my_strcat(char* dest, const char* src) {
if (dest == NULL || src == NULL) {
return NULL;
}
char* p = dest + strlen(dest);
while (*src != '\0') {
*p++ = *src++;
}
*p = '\0';
return dest;
}
int main() {
char str1[20] = "Hello";
char str2[10] = "world";
printf("%s\n", my_strcat(str1, str2));
return 0;
}
```
在这个封装函数中,首先判断传入的参数是否为NULL,然后使用指针p指向目标字符串的末尾,循环将源字符串中的字符依次拷贝到目标字符串的末尾,最后在目标字符串的末尾添加'\0',并返回目标字符串的地址。在主函数中,我们定义两个字符串str1和str2,并使用my_strcat函数将它们进行拼接,并输出结果。
strcat函数实现
strcat函数用于将一个字符串追加到另一个字符串的末尾。它需要两个参数,第一个参数是目标字符串,第二个参数是要追加的源字符串。通过调用strcat函数,源字符串的内容将被追加到目标字符串的末尾,并且目标字符串会增长以容纳源字符串的内容。
在C语言中,有两种常见的方法来实现strcat函数。下面是其中一种实现方法的代码示例:
#include <stdio.h>
#include <string.h>
char* my_strcat(char* str1, const char* str2) {
char *ret = str1;
while(*str1 != '\0') {
str1++;
}
while(*str2 != '\0') {
*str1 = *str2;
str1++;
str2++;
}
*str1 = '\0';
return ret;
}
int main() {
char str1[20] = "abcdef";
char str2[10] = "ghjmn";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
以上代码中的my_strcat函数首先找到目标字符串的末尾,然后逐个将源字符串的字符复制到目标字符串中,直到遇到源字符串的结束符'\0'。最后,将目标字符串的末尾设置为'\0',以确保字符串正确终止。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)