用C语言编写一个函数,实现strcat()的功能,即在一个字符后追加另一个字符。
时间: 2023-03-23 16:04:24 浏览: 117
可以使用以下代码实现strcat()函数的功能:
```c
#include <stdio.h>
#include <string.h>
void my_strcat(char *dest, const char *src) {
while (*dest) {
dest++;
}
while (*src) {
*dest++ = *src++;
}
*dest = '\';
}
int main() {
char str1[20] = "hello";
char str2[] = "world";
my_strcat(str1, str2);
printf("%s\n", str1);
return ;
}
```
这个函数使用了指针来实现字符串的拼接,首先找到目标字符串的末尾,然后将源字符串的每个字符依次拷贝到目标字符串的末尾,最后在目标字符串的末尾添加一个空字符。
相关问题
编写一程序,将两个字符串连接起来,要求不用 strcat 函数,用c语言
在C语言中,不使用`strcat`函数的情况下连接两个字符串,可以手动遍历第一个字符串,并将每个字符追加到第二个字符串的末尾。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数来连接两个字符串
void str_concat(char *dest, char *src) {
int i = 0, j = strlen(dest); // 获取dest字符串长度
// 遍历源字符串并逐个添加到dest
while (src[i] != '\0') {
dest[j] = src[i]; // 将src的字符追加到dest
j++; // 更新dest的指针位置
i++; // 更新src的指针位置
}
// 如果src有结束符'\0',也需要追加到dest
if (src[i] == '\0') {
dest[j] = '\0'; // 在dest末尾添加结束符
} else {
printf("Error: Source string has extra characters.\n");
}
}
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
// 分配足够的空间给最终的字符串
char result[strlen(str1) + strlen(str2) + 1]; // 结果字符串长度包括终止符
// 连接字符串
str_concat(result, str1);
printf("%s", result);
return 0;
}
```
在这个例子中,我们首先计算出结果字符串的大小,然后手动遍历并将`str1`中的每一个字符复制到`result`中。最后,在`main`函数里打印出连接后的字符串。
用c语言用函数实现strcpy和strcat这两个函数的功能
好的,下面是用C语言编写的函数实现strcpy和strcat的功能:
```
#include <stdio.h>
#include <string.h>
// 实现strcpy的函数
char* my_strcpy(char* dest, const char* src) {
char* p = dest; // 保存目标字符串的首地址
while ((*dest++ = *src++) != '\0'); // 逐个字符复制,直到遇到'\0'
return p; // 返回目标字符串的首地址
}
// 实现strcat的函数
char* my_strcat(char* dest, const char* src) {
char* p = dest; // 保存目标字符串的首地址
while (*dest != '\0') dest++; // 指向目标字符串的结尾
while ((*dest++ = *src++) != '\0'); // 追加源字符串,直到遇到'\0'
return p; // 返回目标字符串的首地址
}
int main() {
char s1[20] = "Hello";
char s2[] = "World";
printf("s1 = %s, s2 = %s\n", s1, s2);
// 调用my_strcpy函数
my_strcpy(s1, s2);
printf("After my_strcpy: s1 = %s, s2 = %s\n", s1, s2);
// 调用my_strcat函数
my_strcat(s1, s2);
printf("After my_strcat: s1 = %s, s2 = %s\n", s1, s2);
return 0;
}
```
输出结果为:
```
s1 = Hello, s2 = World
After my_strcpy: s1 = World, s2 = World
After my_strcat: s1 = WorldWorld, s2 = World
```
可以看到,my_strcpy函数将源字符串复制到目标字符串中,my_strcat函数将源字符串追加到目标字符串的结尾。