| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1001 人关注过本帖
标题:哪位童鞋帮忙看一下这个程序哪里有问题。。。
只看楼主 加入收藏
lanxinyuemo
Rank: 2
等 级:论坛游民
帖 子:24
专家分:29
注 册:2010-3-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
哪位童鞋帮忙看一下这个程序哪里有问题。。。
题要求是两个字符串的连接。。。
程序代码:
main()
{
    char a1[20],a2[10];
    int i,j;
    gets(a1);
    gets(a2);
    i=0;
    while(a1[i]!='\o')
        i++;
    j=0;
    while(a2[j]!='\o')
    {
        a1[i]=a2[j];
        i++,j++;
    }
   
    puts(a1);
    puts(a2);
    return 0;
}

搜索更多相关主题的帖子: 童鞋 
2010-07-01 19:46
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:5 
#include<stdio.h>
int main()
{
    char a1[20],a2[10];
    int i,j;
    gets(a1);
    gets(a2);
    i=0;
    while(a1[i]!='\0'&& a1[i]!='\n')
        i++;
    j=0;
    while(a2[j]!='\0'  &&  a2[j]!='\n')
    {
        a1[i]=a2[j];
        i++,j++;
    }
    a1[i]='\0';
   
    puts(a1);
    puts(a2);
    return 0;
}

在退出while循环后  你应该将最后一个赋值为 ‘\0’;用来表示合并字符串结束了。。 不然就会出现乱码
2010-07-01 20:43
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:0 
必须要这么写吗?不能用strcat么。
2010-07-01 20:46
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:2 
他就是要实现strcat的功能
2010-07-01 20:48
liu1987lang
Rank: 2
等 级:论坛游民
帖 子:42
专家分:44
注 册:2007-4-22
收藏
得分:3 
在第二个while循环结束后要给a1加上结束符‘\0’。而且最好在程序中判断下字符串a1,a2的长度。要不然有可能会溢出。
2010-07-02 17:02
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:5 

while(a1[i]!='\o')
        i++;
    j=0;
    while(a2[j]!='\o')
楼主这两句笔下误:结束符应该是'\0',你的写成英语字母O 了,仔细看看
2010-07-02 17:09
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
同意楼上

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-07-02 18:51
skio
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2010-6-14
收藏
得分:0 
#include<stdio.h>
main()
{
    char a[20],b[20];
    int i,j;
    printf("输入字符串:");
    gets(a);
    printf("输入字符串:");
    gets(b);
    i=0;
    while(a[i]!='\0')
    {
        i++;
    }
    j=0;
    while(b[j]!='\0')
    {
        a[i]=b[j];
        i++;j++;
    }
    a[i]='\0';
    puts(a);

}
2010-07-03 10:51
tangxuena
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2010-4-22
收藏
得分:0 
不懂了 {
    a[i]=b[j];
        i++;j++;
    }
这不是替换吗?咋成了连接了?
2010-07-03 15:25
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
收藏
得分:5 
执行完 while(a[i]!='\0')
    {
        i++;
时,i的值就已经改变了,如果gets(a)输入的长度为5的话,那么执行完 while(a[i]!='\0')
    {
        i++;时i的值就是6了,所以第一个b[j]赋值给a[i]时,也就是a[6]=b[j]开始的

2010-07-03 15:37
快速回复:哪位童鞋帮忙看一下这个程序哪里有问题。。。
数据加载中...
 
   



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

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