求问这个程序为啥运行不出来?
#include<stdio.h>int main( )
{
char strle(char a[],char b[]);
char str1,str2,*p1=str1,*p2=str2;
gets(p1);
gets(p2);
printf("%s\n",strle(p1,p2));
}
char strle(char a[],char b[])
{
int num=0,n=0;
char *p;
while(*(a+num)!=0)
num++;
while(b)
{
a=b;
num++;
n++;
}
a='\0';
p=a;
return p;
}
如果我用指针函数的话,这个程序就能运行而且能实现字符串的连接。
但是我不用指针函数,为啥这个程序就运行不了呢?
还有就是这个程序是实现str1,str2的前后连接。
我想实现它们的后前连接的话,我就进行了printf("%s\n",strle(p2,p1));
也是在指针函数下实现的,比如我输入str1:goodgood,str2:study
最后运行的结果是studygoodgoodstudy
求问这是为什么呢?
还有就是如果我不用指针函数的话,还有其他的解决方法么?
求大神指导!!!感激不尽!
char strle(char a[],char b[])函数的返回值应该改成char * 不用指针用其他方式不行,那你不行的原码也是报错还是现象不对,发出来看看啊
页:
[1]