c语言怎样将数字转换成字符(C语言经典100例001-将一个数字字符串转换为一个整数)
c语言怎样将数字转换成字符(C语言经典100例001-将一个数字字符串转换为一个整数)例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数思路:将字符串每个位置的字符进行对应的ASCII码转换题目:将一个数字字符串转换为一个整数(不得调用C语言中提供的字符串函数进行操作) 例如:输入:字符串 -1234输出:整数 -1234
系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞、转发、收藏哦~
后续C语言经典100例将会以pdf和代码的形式发放到公众号
欢迎关注:计算广告生态 即时查收
1 题目题目:将一个数字字符串转换为一个整数(不得调用C语言中提供的字符串函数进行操作) 例如:
输入:字符串 -1234
输出:整数 -1234
2 思路思路:将字符串每个位置的字符进行对应的ASCII码转换
例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数
3 代码#include<stdio.h>
#include<string.h>
/**
编写函数fun()
函数功能:将字符串转换为一个整数(但是不能使用C语言提供的字符串函数)
例如:
输入:字符串"-1234"
输出:整型-1234
**/
longfun(char*p){
intr=0;//数字个数
longres=0L;//转化后的数字
intpos=1;//位数*10*100...
intsize=strlen(p);//字符串长度
if(p[0]=='-'){
r=size-1;
}else{
r=size;
}
//从前往后转换的话,需要分情况去计算。即:不是负数的话从p[0]和如果是负数的话需要从p[1]开始
//所以,可以从后往前计算,循环次数是r
for(inti=0;i<r; i){
res =(p[size-1-i]-48)*pos;
pos*=10;
}
returnp[0]=='-'?-res:res;
}
intmain(intargc charconst*argv[]){
chars[6];
printf("Enterastring:");
gets(s);
longres=fun(s);
printf("ConvertResult:%ld\n" res);
return0;
}
示例结果:
$gccex1.c-odemo
$./demo
Enterastring:-1234
ConvertResult:-1234
$./demo
Enterastring:9089
ConvertResult:9089
--END--
喜欢本文的同学记得点赞、转发、收藏~
更多内容,欢迎大家关注我们的公众号:计算广告生态
后续C语言经典100例将会以pdf和代码的形式发放到公众号
同时也带来更多系列文章以及干货!