本题要求编写程序,使用指针方式实现两个字符串的连接(不能使用strcat函数),并将连接后的字符串输出。
时间: 2023-03-19 22:21:22 浏览: 239
字符串拼接strcat使用及实现
好的,下面是使用指针方式实现两个字符串连接的程序代码,以及输出连接后的字符串的方法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char s1[MAX_LEN], s2[MAX_LEN];
char* p1 = s1, *p2 = s2;
char* result;
printf("请输入第一个字符串:\n");
fgets(s1, MAX_LEN, stdin);
printf("请输入第二个字符串:\n");
fgets(s2, MAX_LEN, stdin);
// 计算连接后字符串的长度
int len1 = strlen(s1);
int len2 = strlen(s2);
int len = len1 + len2;
// 为连接后的字符串申请内存
result = (char*) malloc(len + 1);
// 连接字符串
while (*p1 != '\0') {
*result = *p1;
result++;
p1++;
}
while (*p2 != '\0') {
*result = *p2;
result++;
p2++;
}
// 加上字符串结束符
*result = '\0';
// 输出连接后的字符串
printf("连接后的字符串为:%s\n", result - len);
// 释放申请的内存
free(result - len);
return 0;
}
```
上述程序会先提示用户输入两个字符串,然后计算连接后的字符串的长度,并为其申请内存空间。接着使用指针方式连接两个字符串,并将连接后的字符串输出。最后,释放为连接后的字符串申请的内存空间。
需要注意的是,在程序中我们使用了 `fgets` 函数读入字符串,而不是 `scanf` 函数,这是因为前者可以读入含有空格的字符串,而后者只能读入没有空格的字符串。
阅读全文