鱼C论坛

 找回密码
 立即注册
查看: 1700|回复: 10

[已解决]为嘛不能运行啊。按照课本上敲得

[复制链接]
发表于 2015-10-11 14:59:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ~风介~ 于 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 [20]="C languege",string2 []="is fun",*pt;
        pt=stirngcat (string1,string2);
        printf ( "The new string is :%s",pt );
        return 0;
}
完全按照课本敲的,为嘛会这样,还有就是为嘛for循环的作用是使p指向str 1最后的'\0'????
最佳答案
2015-10-11 17:23:00
你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include <string.h>
QQ截图20151011145603.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-11 17:23:00 | 显示全部楼层    本楼为最佳答案   
你应该是想把两个字符创连接起来吧,如果是的话应该是pt=strcat (string1,string2);然后添加头文件#include <string.h>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-11 22:41:21 | 显示全部楼层
主函数里边第三行应该是pt=stringcat (string1,string2);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-11 22:45:11 | 显示全部楼层
同意
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[20]="C languege ",string2[]="is fun";
        char * pt;
        pt = stringcat(string1,string2);
        printf ( "The new string is :%s\n",pt );
        return 0;
}
已经调试通过.我觉得郝斌老师的课程讲得特别好可以下载来看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-11 23:29:22 | 显示全部楼层
在C++ 6.0中的运行结果为:
The new string is :C languege is fun
Press any key to continue
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哦哦,少了添加头问价
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-12 09:03:01 | 显示全部楼层
桃花飞舞 发表于 2015-10-11 22:41
主函数里边第三行应该是pt=stringcat (string1,string2);

对对,也打错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-12 09:06:11 | 显示全部楼层
爱你没错 发表于 2015-10-11 23:27
#include

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

哦哦,我想起来了,for后面是个空语句,里面只有分号,谢谢哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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

恩,课本的结果就是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-12 14:51:38 | 显示全部楼层
请先把stirng打成string。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 11:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表