输入两个字符串,将第二个字符串连接在第一个字符串后面,并输出,要求不能使用编译系统中string.h已定义的字符串处理函数
时间: 2024-11-08 20:18:18 浏览: 84
当你需要手动连接两个字符串而又不允许直接使用预定义的库函数时,可以采用数组和字符逐个拼接的方式实现。下面是一个简单的示例,假设我们有两个字符数组`str1`和`str2`:
```c
#include <stdio.h>
#include <stdlib.h>
void concatenate(char* str1, char* str2) {
// 获取str1的长度(包括空字符)
int len1 = strlen(str1);
// 检查str2是否为空,如果为空则直接返回str1
if (*str2 == '\0') {
printf("%s\n", str1);
return;
}
// 给str1动态分配空间以添加str2
str1[len1] = '\0'; // 在str1结尾添加空字符
str1[len1 + 1] = *str2; // 将str2的第一个字符复制到str1的末尾
// 遍历str2其余部分并逐个添加
while (*++str2 != '\0') {
str1[len1 + 1] = *str2;
len1++;
}
str1[len1] = '\0'; // 结束添加后确保字符串以空字符结束
printf("%s\n", str1);
}
int main() {
char str1[50], str2[50];
// ... (在这里输入或获取用户输入的字符串)
scanf("%s%s", str1, str2);
concatenate(str1, str2); // 调用函数连接字符串
return 0;
}
```
在这个例子中,我们手动计算了字符串的长度,并通过指针操作将`str2`的内容追加到`str1`后面。注意,这个方法只适用于字符数组,如果是字符串变量,你需要先将其转换成字符数组。
阅读全文