用c语言写一个不用 strcat 函数实现将任意两个字符串连接起来的代码
时间: 2024-12-12 16:19:36 浏览: 5
字符串拼接strcat使用及实现
在C语言中,可以使用数组和指针的方式来实现两个字符串的拼接,而不需要`strcat()`函数。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 需要头文件来访问strlen()函数
// 定义一个函数来拼接两个字符串
void string_concat(char *dest, char *src) {
int len1 = strlen(dest); // 获取第一个字符串长度
int len2 = strlen(src); // 获取第二个字符串长度
// 确保有足够的空间存放两个字符串
if (len1 + len2 + 1 <= sizeof(dest)) { // 加1是因为需要在结果字符串末尾加上终止符'\0'
for (int i = 0; i < len2; ++i) {
dest[len1 + i] = src[i]; // 将源字符串的字符复制到目标字符串
}
dest[len1 + len2] = '\0'; // 终止符
} else {
printf("Destination buffer too small.\n");
}
}
int main() {
char str1[50], str2[50];
printf("Enter first string: ");
fgets(str1, sizeof(str1), stdin);
str1[strlen(str1) - 1] = '\0'; // 去掉fgets留下的换行符
printf("Enter second string: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0'; // 去掉fgets留下的换行符
char result[100]; // 结果缓冲区
string_concat(result, str1);
string_concat(result + strlen(result), str2);
printf("Concatenated string: %s\n", result);
return 0;
}
```
在这个例子中,我们首先计算了两个输入字符串的总长度,然后检查目标数组是否足够大。如果足够,我们就逐个字符地将源字符串添加到目标字符串的末尾,并在最后加上终止符`\0`。
阅读全文