飞羽先生 发表于 2015-10-11 14:59:15

为嘛不能运行啊。按照课本上敲得

本帖最后由 ~风介~ 于 2015-10-11 20:52 编辑

char *stringcat (char *str1, char *str2 )
{
        char *p;

        for ( p=str1; *p!='\0';p++);
        do { *p++=*str2++;}               
        while ( *str2!='\0');
        *p='\0';
        return (str1);
}


#include <stdio.h>

int main(void)
{
        char *stringcat ( char *str1, char *str2 );
        char string1 ="C languege",string2 []="is fun",*pt;
        pt=stirngcat (string1,string2);
        printf ( "The new string is :%s",pt );
        return 0;
}
完全按照课本敲的,为嘛会这样,还有就是为嘛for循环的作用是使p指向str 1最后的'\0'????

livinggo 发表于 2015-10-11 17:23:00

你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include <string.h>

桃花飞舞 发表于 2015-10-11 22:41:21

主函数里边第三行应该是pt=stringcat (string1,string2);

waliemiao 发表于 2015-10-11 22:45:11

同意

爱你没错 发表于 2015-10-11 23:27:50

#include <stdio.h>

char * stringcat(char * str1, char * str2 )
{
        char * p;
       
        p = str1;
        for (; *str1 !='\0';str1++);//去掉str1的结束符号并赋值给p
       //我搞不懂写课本的人是怎么想的p只是存放了str1的首地址你让它怎么往下指

        do
        {
                *str1++ = *str2++;               
        }               
        while ( *str2!='\0');
       
        //*p='\0';//此处已经没有必要加了
        //如果非要加也是应该写:*str1 = '\0';
        //printf ( "%s", p);
        return p;
}

int main(void)
{
        char string1="C languege ",string2[]="is fun";
        char * pt;
        pt = stringcat(string1,string2);
        printf ( "The new string is :%s\n",pt );
        return 0;
}
已经调试通过.我觉得郝斌老师的课程讲得特别好可以下载来看一下

爱你没错 发表于 2015-10-11 23:29:22

在C++ 6.0中的运行结果为:
The new string is :C languege is fun
Press any key to continue

飞羽先生 发表于 2015-10-12 09:02:15

livinggo 发表于 2015-10-11 17:23
你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include ...

哦哦,少了添加头问价

飞羽先生 发表于 2015-10-12 09:03:01

桃花飞舞 发表于 2015-10-11 22:41
主函数里边第三行应该是pt=stringcat (string1,string2);

对对,也打错了

飞羽先生 发表于 2015-10-12 09:06:11

爱你没错 发表于 2015-10-11 23:27
#include

char * stringcat(char * str1, char * str2 )


哦哦,我想起来了,for后面是个空语句,里面只有分号,谢谢哈

飞羽先生 发表于 2015-10-12 09:06:42

爱你没错 发表于 2015-10-11 23:29
在C++ 6.0中的运行结果为:
The new string is :C languege is fun
Press any key to continue

恩,课本的结果就是这样

R_mol 发表于 2015-10-12 14:51:38

请先把stirng打成string。
页: [1]
查看完整版本: 为嘛不能运行啊。按照课本上敲得