还是c语言问题,请大虾进来指教
我想用指针输入三个字符串,代码如下#include<stdio.h>#include<string.h>voidmain(){chara[200],*p1,*p2,*p3...
我想用指针输入三个字符串,代码如下
#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;
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);}
但输出结果与输入数据不同,这是为什么?
指针指错了吗? 展开
1个回答
展开全部
是指针指错了
#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);
}
#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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询