C语言_字符串转数字
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语言_字符串转数字相关推荐
- Swift3.0语言教程字符串转换为数字值
Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...
- c语言字母转换数字代码,实现c语言中字符串和数字的相互转换的代码
实现c语言中字符串和数字的相互转换的代码 引导语:代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符.符号或信号码元以离散形式表示信息的明确的'规则体系.以下是百分网小编分享给大家的实现 ...
- 用C语言将字符串转数字,数字转字符串
这些函数都是标准库里的函数,需要在头文件里引入标准库 C语言数字转字符串 C语言字符串转数字 C语言数字转字符串 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串 ...
- C语言中将字符串转换为数字的方法
C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h> # ...
- c语言 实现字符串和数字的连接
今天在使用MessageBoxA(0, msg, title, 0)的时候, 想在msg的位置 输出提示:"最大的长度为:20" 而20是一个变量. 由于之前用过java,变想当然 ...
- c语言中字符串转数字函数
头文件:#include <stdlib.h> 函数 strtod() 用来将字符串转换成双精度浮点数(double),其原型为: double strtod (const char* s ...
- c语言两字符串转数字后相加,一个觉得很难的C语言问题。对两个数字字符串相加。 C语言 如何把一个字符串中相连的两个数字转化为一......
导航:网站首页 > 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个字符串中相连的两个数字转化为一... 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个 ...
- C语言_字符串拼接函数strcat使用及实现
字符串拼接函数strcat 01--字符串拼接函数strcat函数原型 char* strcat(char *dest, const char *src); 作用:把src所指向的字符串(包括&quo ...
- C语言_字符串的地址以及指向字符串的指针变量的定义
一.字符串的地址以及指向字符串的指针变量的定义. 1. 字符常量:用单引号括起来的一个字符.2. 字符串常量:用双引号括起来的一串字符.3. 注意:由于变量只能存放一个字符,所以字符串只能存储在数组当 ...
- C语言_字符串_将键盘输入的大写字母转换为小写
# include <stdio.h>char fun(char *c) {if (*c<='Z' && *c>='A') //满足条件:*c是大写字母*c-= ...
最新文章
- Ubuntu 18 snap 占用 100%,卸载 snap
- Day20:绑定方法与非绑定办法、多态和多态性
- hdu 1565 方格取数(1)
- 移植uboot之修改代码支持NorFlash记录
- 【Centos配置2】远程管理必备工具配置:ssh/vnc/webadmin
- KR《C语言》书中的一个Bug
- Visual Studio 2008破解激活升级方法
- 如何用MATLAB编写FIR维纳滤波器,最佳FIR维纳滤波器实现
- 广义pareto分布_帕累托分布广义帕累托分布
- 从0到1——CTFer成长之路(一)
- OA产品:市场需求推动OA发展
- 迪赛智慧数——其他图表(平行坐标图):2001 VS 2020主要城市房价及涨幅
- 显示器序列号查询方式
- github项目ratel:JAVA实现斗地主
- python画国旗和八卦图
- 免费报名 | 汇聚HBase大数据最前沿 Apache HBaseConAsia2019盛会火热来袭
- matlab simulink的constant模块
- SourceTree提交vue前端代码报错git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\
- 微博URL短地址lua生成算法
- 2019 沉淀-留言-成长的小白菜