| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 376 人关注过本帖
标题:一道细节纠错题
只看楼主 加入收藏
dingppp23
Rank: 1
等 级:新手上路
帖 子:19
专家分:5
注 册:2008-11-19
结帖率:100%
收藏
 问题点数:0 回复次数:3 
一道细节纠错题
#include "stdio.h"
void stringcat(char *s1,char *s2)
{
    while(*(++s1)!='\0')
        ;
    while(*s1++=*s2++)
        ;
}
int  strlenth(char *string)
{
    int i=0;
    while(*string++!='\0')
         i++;
    return i;
}        
int main(void)
{
    char *p1="Welcome to china,";
    char *p2="China is a great country";
    stringcat(p1,p2);
        printf("%s\n",p1);
    printf("The lenth of p1 is %d\n",strlenth(p1));
    printf("The lenth of p2 is %d",strlenth(p2));
        return 0;
}
不知道上面的程序为什么运行出错,若改成p1[80],p2[40]则行,希望高人能相告
搜索更多相关主题的帖子: 细节 纠错 
2009-09-09 16:27
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
"Welcome to china,"这是字符串,要在内存申请个空间存储(就是申明变量),而能存储字符串的是字符数组,
你申请个指针变量是存不了这字符串的,不合法。所以编译器不给过。
只能先把字符串给数组,再用指针指向该数组。

努力—前进—变老—退休—入土
2009-09-09 16:42
dingppp23
Rank: 1
等 级:新手上路
帖 子:19
专家分:5
注 册:2008-11-19
收藏
得分:0 
回复 2楼 UserYuH
谢谢你的回答 ,但是我有一个疑问,当把一个字符串赋予一个字符指针变量时,不是就已经分配给了存储空间的吗?而且指针不过存储的是该字符串的首地址。
2009-09-09 18:14
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
咦,我错了,
char *p1="Welcome to china,";这个没问题,
编译你的代码只把stringcat函数改strcat  和strlenth函数改strlen ,编译通过。
因为我用TC编译。

努力—前进—变老—退休—入土
2009-09-09 18:38
快速回复:一道细节纠错题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020172 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved