求助S1E22 第二题
/* Note:Your choice is C IDE */#include "stdio.h"
#define MAX 1024
void main()
{
char str1;
char str2;
char *target1=str1;
char *target2=str2;
printf("请输入第一个字符串:");
fgets(str1,MAX,stdin);
printf("请输入第二个字符串:");
fgets(str2,MAX,stdin);
if(*target1!='\n')
{
*target1++;
}
target1 -= 2;// 地址上去除;
if(*target1!='\0')
{
*target1++ = *target2++;
}
printf("连接后的结果是:%s",str1);
}
连接字符串连接不上 我重新写了下代码 还是不行
/* Note:Your choice is C IDE */
#include "stdio.h"
#define MAX 1024
void main()
{
char str1;
char str2;
char *target1=str1;
char *target2=str2;
printf("请输入第一个字符串:");
fgets(str1,MAX,stdin);
printf("请输入第二个字符串:");
fgets(str2,MAX,stdin);
while(*target1!='\0')
{
*target1++;
}
target1 -= 2;// 地址上去除;
while(*target1!='\0')
{
*target1++ = *target2++;
}
printf("连接后的结果是:%s",str1);
} 你的target1都到末尾了,还怎么++? qiuyouzhi 发表于 2021-6-26 11:56
你的target1都到末尾了,还怎么++?
那应该怎么写?target1-=2不是把/0 /N 的地址去掉了吗? huangguohao11 发表于 2021-6-26 22:23
那应该怎么写?target1-=2不是把/0 /N 的地址去掉了吗?
你可以再搞一个字符数组存放结果 strcat 本帖最后由 帅周 于 2021-6-26 23:09 编辑
666 本帖最后由 帅周 于 2021-6-26 23:20 编辑
#include<stdio.h>
int main(void)
{
char str1;
char str2;
char *p1 = str1;
char *p2 = str2;
printf("请输入第一个字符串:");
fgets(str1,1024,stdin);
printf("请输入第二个字符串:");
fgets(str2,1024,stdin);
while (*p1 != '\0')
{
p1 += 1;
}
p1--;
while (*p2 != '\0')
{
*p1 = *p2;
p2++;
p1++;
}
printf("%s",str1);
return 0;
}
这样写
*p1++ = *p2++
p1不变,*优先级比++高,没有意义
要改为
*p1 = *p2;
p1++;
p2++;
页:
[1]