小弟我有一个问题想请教大家,C语言的

来源:百度知道 编辑:UC知道 时间:2024/06/14 20:13:40
代码:
#include <stdio.h>
#include <string.h>
main()
{
int n;
char a[50],b[50],c[100],*p1=a,*p2=b,*p3=c;
gets(p1);
gets(p2);
while(*p1!='\0')
{
*p3=*p1;
p3++;
p1++;
}
while(*p2!='\0')
{
*p3=*p2;
p3++;
p2++;
}
*p3='\0';
puts(p3);
}
为什么上面的这段代码不能显示字符串呢?这段代码的功能是:从键盘输入两个字符串,然后把他们连接起来再显示,可是显示不出来啊?怎么搞的!!!

*p3='\0';puts(p3); 这里有问题,p3指针移到最后了,当然打印不出来.加一句p3=c;就好了

gets(p1);
gets(p2);
是不是这里出了问题,因为这两个是指针变量,存放的是另一个变量的地址,赋值的时候要用*P1的方式,才是赋值给它指向的变量。

#include <stdio.h>
#include <string.h>
void main()
{
int n;
char a[50],b[50],c[100],*p1=a,*p2=b,*p3=c;
printf("Please input the string1:");
gets(p1);
printf("Please input the string2:");
gets(p2);

while(*p1 != '\0')
{
*p3++ = *p1++;
}

while(*p2!='\0')
{
*p3++ = *p2++;
}

*p3 = '\0';
p3 = c;

puts(p3);
}

*P3=*p1 是不是这里的问题,把它改成p3=*p1试试 下面的也一样改了.