阿撩 发表于 2016-12-6 21:59:08

求问这个程序为啥运行不出来?

#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
求问这是为什么呢?
还有就是如果我不用指针函数的话,还有其他的解决方法么?
求大神指导!!!感激不尽!

heblhc 发表于 2016-12-7 10:47:27

char strle(char a[],char b[])函数的返回值应该改成char *

四十二 发表于 2016-12-9 02:46:32

不用指针用其他方式不行,那你不行的原码也是报错还是现象不对,发出来看看啊
页: [1]
查看完整版本: 求问这个程序为啥运行不出来?