s1e22动动手strcat
#include<stdio.h>#define max 1024
int main()
{
char a;//第一个字符串
char b;//第二个字符串
char c;//拼接后的字符串
char *target1 = a;
char *target2 = b;
char *target3 = c;
int i = 0;//统计第一个字符串的字符个数
printf("请输入第一个字符串:");
fgets(a, max, stdin);
printf("请输入第二个字符串:");
fgets(b, max, stdin);
while((*target3++ = *target1++) != '\0')
{
i++;
// printf("连接后的结果是:%d\n", i);
}
i--;
*target3 -= 2 ;
while((*target3++ = *target2++) != '\0')
{
i++;
// printf("连接后的结果是:%d\n", i);
}
i--;
printf("连接后的结果是:%s", c);
return 0;
}
这是我自己写的代码,但是不知道为什么输出是这样的
我试过了在第二个循环里输出i,i也是有自增的,但是为什么没有第二个字符串没有被复制到第一个字符串后呢?? #include <stdio.h>
#define max 1024
int main() {
char a; //第一个字符串
char b; //第二个字符串
char c; //拼接后的字符串
char *target1 = a;
char *target2 = b;
char *target3 = c;
int i = 0; //统计第一个字符串的字符个数
printf("请输入第一个字符串:");
fgets(a, max, stdin);
printf("请输入第二个字符串:");
fgets(b, max, stdin);
while((*target3++ = *target1++) != '\0') {
i++;
// printf("连接后的结果是:%d\n", i);
}
i--;
//*target3 -= 2;
target3 -= 2;
while((*target3++ = *target2++) != '\0') {
i++;
// printf("连接后的结果是:%d\n", i);
}
i--;
target3 -= 2;
*target3 = '\0';
//printf("连接后的结果是:%s", c);
printf("连接后的结果是:%s\n", c);
return 0;
}
完全不需要变量 i
#include <stdio.h>
#define max 1024
int main() {
char a; //第一个字符串
char b; //第二个字符串
char c; //拼接后的字符串
char *target1 = a;
char *target2 = b;
char *target3 = c;
printf("请输入第一个字符串:");
fgets(a, max, stdin);
printf("请输入第二个字符串:");
fgets(b, max, stdin);
while((*target3++ = *target1++) != '\0');
target3 -= 2;
while((*target3++ = *target2++) != '\0');
target3 -= 2;
*target3 = '\0';
printf("连接后的结果是:%s\n", c);
return 0;
}
人造人 发表于 2021-9-4 10:59
完全不需要变量 i
我知道在这题里面不需要i,我在前面测试的时候,老是不对,所有加了个i看看是哪里写错了 错误在这一句
*target3 -= 2 ;
应该是这样
target3 -= 2 ;
页:
[1]