C语言_字符串转数字

程序实现基础算法与思想
‘1‘ - ’0‘ —> 1;(字符1减字符0得到数字1)
’2‘ - ’0‘ —> 2;
----
‘9’ - ‘0’ —> 9;
*即:数字字符 - ’0‘ —> 对应的数字
( 注意:只能得到1~9,’10‘ - ’0‘无法得到10。)

测试用例:

int main()
{int a='1'-'0';//int a=‘2’-‘0’;//...printf("%d\n",a);return 0;
}

结果:

函数实现:
实现思想:逐个转换字符,将数字逐个“叠加”,最终得到所需数字。
例如字符串“143562”,
_____先将字符‘1’转换成数字1,存入变量tmp(此时tmp=1);
_____再将字符’4’转换成数字4,存入变量tmp(此时tmp=tmp✖10+4=14);
_____再将字符’3’转换成数字3,存入变量tmp(此时tmp=tmp✖10+3=143);

以此类推得到tmp=143562;

基本代码实现:

int Myatoi(const char *str)
{assert(str != NULL);//判空断言,与函数实现无关if(str==NULL)return 0;int tmp=0;while(*str !='\0'){tmp=tmp*10+(*str -'0');//获得数字并“叠加”str++;}return tmp;
}int main()
{char str1[10]="123456";//测试用例char str2[10]="";printf("%d\n",Myatoi(str1));printf("%d\n",Myatoi(str2));return 0;
}

测试结果:

类推其他相关代码实现:

函数1(将字符串中所有数字提取并输出,例如“12ab12a”->1212)

int Myatoi(const char *str)
{assert(str != NULL);//判空断言,与函数实现无关if(str==NULL)return 0;int tmp=0;while(*str !='\0'){if(*str>'0' && *str<='9')//if(isdigit(*str)) 推荐使用函数isdigit,检查字符是否为字符‘0’~~‘9’{tmp=tmp*10+(*str -'0');//获得数字并“叠加”}str++;//指针后移}return tmp;
}

测试:

int main ()
{char str1[]="123456";char str2[]="0";char str3[]="abd123";char str4[]="123abc123";char str5[]="abc";printf("%d\n",Myatoi(str1));printf("%d\n",Myatoi(str2));printf("%d\n",Myatoi(str3));printf("%d\n",Myatoi(str4));printf("%d\n",Myatoi(str5));return 0;
}

测试结果

函数2(遇其他字符直接结束,例如:“123”->123,“123a4”->123,“abc123”->0):

int Myatoi(const char *str)
{assert(str != NULL);//判空断言,与函数实现无关if(str==NULL)return 0;int tmp=0;while(*str>'0' && *str<='9')//while(isdigit(*str))//推荐使用函数isdigit,检查字符是否为字符‘0’~~‘9’{tmp=tmp*10+(*str -'0');//获得数字并“叠加”str++;//指针后移}return tmp;
}

测试:

int main ()
{char str1[]="123456";char str2[10];char str3[]="0";char str4[]="abd123";char str5[]="123abc123";printf("%d\n",Myatoi(str1));printf("%d\n",Myatoi(str2));printf("%d\n",Myatoi(str3));printf("%d\n",Myatoi(str4));printf("%d\n",Myatoi(str5));return 0;
}

测试结果:

C语言_字符串转数字相关推荐

  1. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

  2. c语言字母转换数字代码,实现c语言中字符串和数字的相互转换的代码

    实现c语言中字符串和数字的相互转换的代码 引导语:代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符.符号或信号码元以离散形式表示信息的明确的'规则体系.以下是百分网小编分享给大家的实现 ...

  3. 用C语言将字符串转数字,数字转字符串

    这些函数都是标准库里的函数,需要在头文件里引入标准库 C语言数字转字符串 C语言字符串转数字 C语言数字转字符串 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串 ...

  4. C语言中将字符串转换为数字的方法

    C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h> # ...

  5. c语言 实现字符串和数字的连接

    今天在使用MessageBoxA(0, msg, title, 0)的时候, 想在msg的位置 输出提示:"最大的长度为:20" 而20是一个变量. 由于之前用过java,变想当然 ...

  6. c语言中字符串转数字函数

    头文件:#include <stdlib.h> 函数 strtod() 用来将字符串转换成双精度浮点数(double),其原型为: double strtod (const char* s ...

  7. c语言两字符串转数字后相加,一个觉得很难的C语言问题。对两个数字字符串相加。 C语言 如何把一个字符串中相连的两个数字转化为一......

    导航:网站首页 > 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个字符串中相连的两个数字转化为一... 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个 ...

  8. C语言_字符串拼接函数strcat使用及实现

    字符串拼接函数strcat 01--字符串拼接函数strcat函数原型 char* strcat(char *dest, const char *src); 作用:把src所指向的字符串(包括&quo ...

  9. C语言_字符串的地址以及指向字符串的指针变量的定义

    一.字符串的地址以及指向字符串的指针变量的定义. 1. 字符常量:用单引号括起来的一个字符.2. 字符串常量:用双引号括起来的一串字符.3. 注意:由于变量只能存放一个字符,所以字符串只能存储在数组当 ...

  10. C语言_字符串_将键盘输入的大写字母转换为小写

    # include <stdio.h>char fun(char *c) {if (*c<='Z' && *c>='A') //满足条件:*c是大写字母*c-= ...

最新文章

  1. Ubuntu 18 snap 占用 100%,卸载 snap
  2. Day20:绑定方法与非绑定办法、多态和多态性
  3. hdu 1565 方格取数(1)
  4. 移植uboot之修改代码支持NorFlash记录
  5. 【Centos配置2】远程管理必备工具配置:ssh/vnc/webadmin
  6. KR《C语言》书中的一个Bug
  7. Visual Studio 2008破解激活升级方法
  8. 如何用MATLAB编写FIR维纳滤波器,最佳FIR维纳滤波器实现
  9. 广义pareto分布_帕累托分布广义帕累托分布
  10. 从0到1——CTFer成长之路(一)
  11. OA产品:市场需求推动OA发展
  12. 迪赛智慧数——其他图表(平行坐标图):2001 VS 2020主要城市房价及涨幅
  13. 显示器序列号查询方式
  14. github项目ratel:JAVA实现斗地主
  15. python画国旗和八卦图
  16. 免费报名 | 汇聚HBase大数据最前沿 Apache HBaseConAsia2019盛会火热来袭
  17. matlab simulink的constant模块
  18. SourceTree提交vue前端代码报错git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\
  19. 微博URL短地址lua生成算法
  20. 2019 沉淀-留言-成长的小白菜

热门文章

  1. 160个crackme 008 Andrénalin.1
  2. 离散数学大作业代码及感想
  3. 高等数学同济第七版课后答案上册
  4. HTML浮窗音乐播放器,浮窗音乐播放器3.1.4 支持网易/QQ/虾米/百度等歌单 —— WordPress教程...
  5. mysql与oracle语法区别
  6. SQL插入数据-insert用法
  7. ARM中国区大学计划
  8. Kindle刷安卓双系统的方法
  9. tomcat日志按天分割
  10. html当当图书榜页面,2019书排行榜_当当网图书排行榜