还是c语言问题,请大虾进来指教

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:42:04
我想用指针输入三个字符串,代码如下

#include <stdio.h>
#include <string.h>
void main()
{char a[200],*p1,*p2,*p3,*temp;
temp=p1=a;
printf("请输入三个字符串\n");
scanf("%s",p1);
p2=p1+strlen(p1)+1;
scanf ("%s",p2);
p3=p1+strlen(p2)+1;
scanf ("%s",p3);
printf ("%s,%s,%s'",p1,p2,p3);}

但输出结果与输入数据不同,这是为什么?
指针指错了吗?

是指针指错了

#include <stdio.h>
#include <string.h>
void main()
{
char a[200],*p1,*p2,*p3,*temp;
p1=a;
printf("input three strings:\n");
scanf("%s",p1);
p2=p1+strlen(p1)+1;
scanf ("%s",p2);
p3=p1+strlen(p1)+strlen(p2)+2; /* 因为前面已经有两个字符串,意味着有两个空字符'\0' */
scanf ("%s",p3);
printf ("%s,%s,%s\n",p1,p2,p3);
}