标题:求大神指点!程序正确,就是运行后会出现一连串的“烫”,什么原因??
只看楼主
dreaming_t
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-29
结帖率:0
已结贴  问题点数:20 回复次数:9 
求大神指点!程序正确,就是运行后会出现一连串的“烫”,什么原因??
#include<stdio.h>
int main()
{
    int i=0,j=0;
    char a[100],b[100];
    printf("please enter a:\n");
    scanf("%s",&a);
    printf("please enter b:\n");
    scanf("%s",&b);
    while(a[i]!='\0')
    {
        i++;
    }
    while(b[j]!='\0')
    {
        a[i]=b[j];
        i++;
        j++;
    }
    printf("%s",&a);
    return 0;
}
搜索更多相关主题的帖子: please return 
2013-08-29 11:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
哦,程序正确,接分。

授人以渔,不授人以鱼。
2013-08-29 11:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
#include <stdio.h>

int main()
{
    int i=0,j=0;
    char a[100],b[100];
    printf("please enter a:\n");
    scanf("%s",a); // scanf("%s",&a);
    printf("please enter b:\n");
    scanf("%s",&b); // scanf("%s",&b);
    while(a[i]!='\0')
    {
        i++;
    }
    while(b[j]!='\0')
    {
        a[i]=b[j];
        i++;
        j++;
    }
    a[i] = '\0';
    printf("%s",&a); //printf("%s",&a);
    return 0;
}
2013-08-29 11:58
木蕊
Rank: 2
等 级:论坛游民
帖 子:32
专家分:26
注 册:2013-6-22
得分:4 
scanf("%s",&a);    scanf("%s",&b); 两个不要地址符
 printf("%s",&a);去掉地址符,并在前面加一句a[i]='\0';
2013-08-29 12:09
dreaming_t
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-29
得分:0 
回复 3楼 rjsp
参照你写出的程序,知道自己错在哪了。谢谢!!

相濡以沫不如相忘于江湖!!!
2013-08-29 15:39
dreaming_t
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-29
得分:0 
回复 4楼 木蕊
嗯,是这样的。谢谢哈!!!

相濡以沫不如相忘于江湖!!!
2013-08-29 15:40
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:4 
首先scanf("%s",a); 后面这个参数是应该地址值,a为数组首地址 所以不能用&a再取地址。数组b同理
其次,字符数组输出时如果遇到'\0'结束标识符 就结束输出,否者就输出到数组边界,鉴于你的程序无法正确输入。因此输出的是不确定的内容

C++菜鸟
2013-08-29 19:39
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
得分:4 
因为最后没有加  a[i] = '\0';
所以输出是不知道结束.就一直往后输出.
2013-09-01 10:53
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
得分:0 
因为最后没有加  a[i] = '\0';
所以输出是不知道结束.就一直往后输出.
2013-09-01 10:53
歌舞伎町
Rank: 2
等 级:论坛游民
帖 子:30
专家分:38
注 册:2013-8-7
得分:4 
像这种出现了乱码或者莫名其妙的字符的现象,一般就是不小心访问了别的内存空间(就是你本来没想访问的),顺着这个思路其实很好找,从地址开始找……
2013-09-02 02:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419797-1-1.html




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

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