标题:字符串输入的16进制转换10进制编程的一些问题
取消只看楼主
点灯工程师
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-26
结帖率:100%
已结贴  问题点数:20 回复次数:2 
字符串输入的16进制转换10进制编程的一些问题
输入的16进制是字符串,要求转换为10进制输出。例如输入0xA,输出10。程序如下。
输出结果不对,所以加了temp0和temp1两个变量用来观察,调试时发现,temp0和temp1里不是同一个字符。
另外还发现,如果chs声明得比较大,比如产生chs[100]或者去掉lens = strlen(chs)时,上述两者就一样了,这个问题百思不得其解,求大神指教!!!
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int main()
{

    char chs[] = "";
    int lens;
    while(scanf("%s",chs) != EOF)
    {
        int res = 0;
        char tmep0 = chs[2];
        lens = strlen(chs);
        char temp1 = chs[2];
        for(int i = 2;i < lens;i++)
        {
            if(chs[i] >= 'A')
                res += (chs[i] - 55)*pow(16,lens-i-1);
            else
                res += (chs[i] - '0')*pow(16,lens-i-1);
        }
        printf("%d\n",res);
    }
}
搜索更多相关主题的帖子: 输入 字符串 int res 进制 
2020-09-26 17:15
点灯工程师
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-26
得分:0 
回复 2楼 lin5161678
大神的操作总是那么秀,我还是太菜了
2020-09-27 09:16
点灯工程师
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-9-26
得分:0 
回复 3楼 纯蓝之刃
讲得很详细,受教了,我会注意这些问题的,谢谢大神!
2020-09-27 09:19



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




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

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