| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:【紧急求助】c数据类型出错!出乱码!!
只看楼主 加入收藏
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
结帖率:79.31%
收藏
已结贴  问题点数:20 回复次数:9 
【紧急求助】c数据类型出错!出乱码!!
#include "string.h"
int main(int argc, char* argv[])
{
    char s1[]="";
    char s2[]="";
    char s3[]="";
    int k;
    int i;
    scanf("%d",&s1);
    k=strlen(s1);
    for(i=0;i<k;i++)
        s2[i]=s1[i];
    for(i=0;i<k;i++)
    {
        if(s2[i]>9)
            s3[i]=s2[i]%10;
        else
            s3[i]=s2[i];
    }
   
    printf("%s",s3);
   
    return 0;

}
想输入6987
输出转后的数字8190
可是出乱码,
是不是数据类型错误
请大家帮忙看看!!
谢谢!!

[ 本帖最后由 xiaxun 于 2010-10-9 10:28 编辑 ]
搜索更多相关主题的帖子: include return 
2010-10-09 10:22
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:4 
粗略的看一下!有两个致命错误scanf("%d",&s1);改成scanf("%s",s1); for(i=0;i<k;i++)
        s2[i]=s1[i];后加s2[i]='\0';字符粗结束符

2010-10-09 10:34
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
还是不行呀!!
输出的还是乱码

朋友你可以到机器运行一下呀!

谢谢
2010-10-09 10:41
xuexibianc
Rank: 2
等 级:论坛游民
帖 子:35
专家分:34
注 册:2010-9-8
收藏
得分:4 
        if(s2[i]>9)
这边字符与数值能这样比较吗?自己再改改
2010-10-09 10:45
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
那怎么改呀

我也知道 一边是int  一边是char

那我字符数组里面存的是数字呀

请问怎么改@
2010-10-09 10:53
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:4 
不知道你的程序是要做什么??
你的处理过程是对数字符号的ASCII值对10求余 结果 是0~9存放到s3数组,然后输出,结果肯定是ASCII值是0~9的某几个控制符号了!!!

[ 本帖最后由 jack10141 于 2010-10-9 11:34 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-09 11:29
delong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:126
注 册:2010-6-9
收藏
得分:4 
第一个,程序不知道干什么的~
第二个,scanf("%d",&s1);
第三个,if(s2[i]>9) s3[i]=s2[i]%10;
s2[i]好像就没有大于9的~
把程序的目的说清楚~不然盲目性太大~
哦,还缺少#include<stdio.h>
2010-10-09 11:33
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
s2[i]里面存的是数字!!!!只是数字怎么和不能和char类型比较!!
2010-10-09 11:44
cacker
该用户已被删除
收藏
得分:4 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-09 17:43
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用xuexibianc在2010-10-9 10:45:10的发言:

        if(s2[i]>9)
这边字符与数值能这样比较吗?自己再改改
比较肯定可以呀!只不过是字符的ascii值与数字9比较,根据楼主的输入,比较的结果肯定为真!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-09 18:11
快速回复:【紧急求助】c数据类型出错!出乱码!!
数据加载中...
 
   



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

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