| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:C语言,copy一个字符数组,运行时结果出现乱码!为什么?
只看楼主 加入收藏
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:17 
C语言,copy一个字符数组,运行时结果出现乱码!为什么?
图片附件: 游客没有浏览图片的权限,请 登录注册

    while(str1[i++]!='\0')
    {
        str2[i]=str1[i];
//        i++;
    }

主要就是这段循环,试了很多遍,发现:
当把++运算放到上面的时候运行就会显示乱码
把++运算放到下面循环体内的话,暂时没发现有乱码
为什么?
搜索更多相关主题的帖子: C语言 
2015-09-08 19:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
不要乱写一气,要弄明白原理再下笔,别人讲解的时候,不认真听、不认真学,拿到“正确”代码就当学会,结果到后面反覆犯同类错误。

授人以渔,不授人以鱼。
2015-09-08 19:35
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
回复 2楼 TonyDeng
亲……
每个人都是从不会到会
从不熟悉到熟悉的过程吧
而这个过程中肯定都会犯一些高手看起来很幼稚的错误,学一门语言一点错误不犯,那不就得了啦
而且正是这些错误,能让我们更加理解对应的知识点把

呵呵,所以
你说的原理是?
我发现这里原理没啥问题啊
求指导一下?
2015-09-08 19:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你的问题是别人讲的时候不认真听、不认真学又要反覆问同类的问题,还在这里强辩。得,你的ID已入我黑名单,以后不理你任何问题。

授人以渔,不授人以鱼。
2015-09-08 19:42
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
回复 4楼 边小白
啊……
还真是
谢谢提醒!

但是我看运行结果乱码占了两个字符的位置
那还一个字符哪去了,为什么也没拷贝过去呢?
2015-09-08 19:42
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
回复 5楼 TonyDeng
…………
呵呵,你可能指的是之前数组++吧
这情况不一样吧

当然也许站在你的角度,都一样很简单,但是对于对C还不熟悉的来说,就不好说了
您是高标准要求!!
我也希望随着我的学习,对自己的要求也越来越高……
2015-09-08 19:46
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
回复 8楼 边小白
实在不行先记住吧
反正你上面说的是肯定正确的
2015-09-08 19:59
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:3 
//一种解决方案
#include <stdio.h>
int main(void){
    char str1[100],str2[100];
    int i;
    gets(str1);
    for (i = 0; i < sizeof(str1); i++){
        str2[i] = str1[i];
    }
    printf("%s\n",str2);
    return 0;
}

PS:楼主还不快向T版道歉,T版已经说出了问题的关键,
自己的问题最好是自己解决,指明一条方向往往比得到
所谓的答案要重要的多
2015-09-08 20:01
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
回复 10楼 hjx1120
谢谢!
他都拉黑我了
我能说什么呢

有时一个问题自己看半天都没看出来,继续可能也难以看出问题的时候,那就没啥意思了,浪费时间降低效率
这时候,就得求助一下各位了,虽然有时这个问题对熟悉的人来说确实很简单
当局者迷,旁观者清,有时就得集思广益
当然如果自己能解决肯定更好
这也是论坛存在的一个比较主要的意义吧
2015-09-08 20:22
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
楼主都还没道歉怎么就知道T版把你拉黑了呢?
论坛有黑名单这个功能嘛?
我怎么不知道?
刚来论坛那时,我也得罪过T版,
一个能看清问题本质并指出问题原因的大师
怎么可能会计较,T版不是那样的人,
可能是少年的态度有些那个啥了吧。。。
少年年轻气盛,可以理解
吸气,呼气,吸气,呼气,吸气,呼气,
好!
在看看楼主写的代码吧


2015-09-08 20:42
快速回复:C语言,copy一个字符数组,运行时结果出现乱码!为什么?
数据加载中...
 
   



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

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