`

C语言将字符串转换成对应的数字(十进制、十六进制)

阅读更多

        问题1:讲一个十进制数字的字符串表示转换成对应的整数。举例:将“1234”转换成整数1234.

/*将字符串s转换成相应的整数*/
int atoi(char s[])
{
	int i;
	int n = 0;
	for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
	{
		n = 10 * n + (s[i] - '0');
	}
	return n;
}

 

        问题2:将一个十六进制数的字符串表示形式转换成对应的整数。所谓的十六进制数的字符串形式是指字符串只包含'0'-'9'或者'a'-'z'或者'A'-'Z',前导“0x”或者“0X”是否出现都可以。

        要解决这个问题,还需要一个将大写字母转换成小写字母的工具函数:

/*将大写字母转换成小写字母*/
int tolower(int c)
{
	if (c >= 'A' && c <= 'Z')
	{
		return c + 'a' - 'A';
	}
	else
	{
		return c;
	}
}

 

        下面是转换函数:

//将十六进制的字符串转换成整数
int htoi(char s[])
{
	int i;
	int n = 0;
	if (s[0] == '0' && (s[1]=='x' || s[1]=='X'))
	{
		i = 2;
	}
	else
	{
		i = 0;
	}
	for (; (s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >='A' && s[i] <= 'Z');++i)
	{
		if (tolower(s[i]) > '9')
		{
			n = 16 * n + (10 + tolower(s[i]) - 'a');
		}
		else
		{
			n = 16 * n + (tolower(s[i]) - '0');
		}
	}
	return n;
}
 
0
0
分享到:
评论

相关推荐

    c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。

    c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。

    浙江大学C语言上机练习题附答案

    70035 将十六进制字符串转换为十进制整数 21 70036 将十进制字符串转换为十进制整数 22 70052 统计字符出现次数 23 夏3周 24 10008 求1~100中能被6整除的所有整数的和 24 20014 计算三门课程的平均成绩 25 20016 ...

    程序员二进制计算器 v1.36

    如何得到ASCII值对应的字符(ASCII值转换为字符): 用%c,使结果(仅支持整型值)按字符形式输出即可。 %c 65 = 'A' %C 100-3 = 'a' 5-智能大小输出格式 用于将一个较大或较小的、不易读的数,自动转换为易读的...

    C语言程序设计标准教程

    在C语言中,使用的整常数有八进制、十六进制和十进制三种。 整型常量 1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。 以下各数是合法的八进制数: ...

    C语言参考答案汇总(浙江大学城市学院)

    C语言参考答案汇总(浙江大学城市...60002 整数的十进制、八进制和十六进制表现形式 56 60003 分类统计字符 57 60006 验证歌德巴赫猜想 58 60007 使用函数输出整数的逆序数 59 60009 统计单词 60 60062 简单计算器 61

    C程序范例宝典(基础代码详解)

    实例001 十进制转换为十六进制 2 实例002 十进制转换为二进制 3 实例003 n进制转换为十进制 4 实例004 以IP地址形式输出 5 1.2 条件判断 6 实例005 3个数由小到大排序 6 实例006 a2+b2 8 实例007 整...

    python cookbook(第3版)

    3.15 字符串转换为日期 3.16 结合时区的日期操作 第四章:迭代器与生成器 4.1 手动遍历迭代器 4.2 代理迭代 4.3 使用生成器创建新的迭代模式 4.4 实现迭代器协议 4.5 反向迭代 4.6 带有外部状态的生成器...

    c程序设计习题参考(谭浩强三版)习题参考解答

    8.14写一函数,输入一个十六进制数,输出相应的十进制数。 64 8.15给出年,月,日,计算该日是该年的第几天。 65 第9章 预处理命令 66 9.1定义一个代参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用...

    整理后java开发全套达内学习笔记(含练习)

    十六进制数,零x开头 0x55(十六进制)=5*16+5(十进制) 类型:数据都必须有类型 boolean (8bit,不定的)只有true和false两个值 char 16bit, 0~2^16-1 (2^16=6万6) byte 8bit, -2^7~2^7-1 (2^7=128; 注意:两个 ...

    grub4dos-V0.4.6a-2017-02-04更新

    --string=[x]=[y]=[color]=["string“] 字符串位置、颜色与内容,可用于标题,说明,帮助等。单位:列,行,24位色彩。 注:如果省略颜色,位于菜单框以上按标题颜色,位于菜单框以下按帮助文本颜色; 字符串头尾...

Global site tag (gtag.js) - Google Analytics