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

转自:http://wawlian.iteye.com/blog/1315133

 问题1:讲一个十进制数字的字符串表示转换成对应的整数。举例:将“1234”转换成整数1234.
C代码  收藏代码
/*将字符串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”是否出现都可以。
        要解决这个问题,还需要一个将大写字母转换成小写字母的工具函数:
C代码  收藏代码
/*将大写字母转换成小写字母*/
int tolower(int c)
{
    if (c >= ‘A‘ && c <= ‘Z‘)
    {
        return c + ‘a‘ - ‘A‘;
    }
    else
    {
        return c;
    }
}  

        下面是转换函数:
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;
}  
时间: 2024-10-14 05:15:33

C语言将字符串转换成对应的数字(十进制、十六进制)【转】的相关文章

C语言将一个字符串转换成整数

1.环境 ubuntu16.04 Eclipse C语言 2.问题 用C语言编写程序,将一个字符串转换成整数. 3.解决方法 程序代码:https://github.com/southeast02/JZOF/blob/master/chap01_page12_1.c

【C语言】将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)

#include <stdio.h> /* 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数.负浮点数) 例如:"12.34" 返回12.34 "-123.34" 返回-123.34 函数原型:double my_atof(char *str) {} */ double my_atof(char *str) { double m=0,n=0,x=1; int flag=1; int flag2=0; if(*str=='-') //

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)

/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数.负整数) 例如:"12" 返回12 "-123" 返回-123 函数原型:int my_atof(char *str) */ #include <stdio.h> int my_atof(char *str) { int flag=0; int m=0; if(*str=='-') { flag=1; str++; } while(*str!='\0') { if(*str<

C语言atoi()函数:将字符串转换成int(整数)

头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的整型数:如果 str 不能转换成 int 或者 str 为

【C语言】编写函数实现库函数atoi,把字符串转换成整形

//编写函数实现库函数atoi,把字符串转换成整形 #include <stdio.h> #include <string.h> int my_atoi(const char *src) { int flag=1; int sum=0; while (*src) { if (*src == ' ') src++; else if (*src == '+') { src++; flag = 1; } else if(*src == '-') { src++; flag = -1; }

C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数.负浮点数) 例如:"12.34"  返回12.34 "-123.34" 返回-123.34 函数原型:doublemy_atof(char *str) 提示: 需要在函数中判断负号,小数点,还要判断是不是数字字符.在判断小数点时需定义一个计数器来计算小数点后数字字符的个数. #include <stdio.h> #include <math.h> double my_at

【C语言】数字字符串转换成这个字符串对应的数字。

(1) int ascii_to_integer(char *str)函数实现. 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整数.如果字符串参数包含任何非数字字符,函数就返回零.不必担心算数溢出. 提示:你每发现一个数字,把当前值乘以10,并把这个值和新的数字所代表的值相加. 直接上代码: #include <stdio.h> #include <assert.h> int ascii_to_integer(char *str) { in

json字符串转换成json对象

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符

程序员面试50题(4)—把字符串转换成整数[算法]

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题.建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同. 首先我们分析如何完成基本功能,即如何把表示整数的字符串正确地转换成整数.还是以"345