问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

小程序字符串转换为数字如何实现

发布网友 发布时间:2022-04-20 04:13

我来回答

1个回答

热心网友 时间:2023-07-09 20:22

1、字符串转换成数字:
C语言库函数:atoi 实现了此功能。
int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果第一个非空格字符存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
/**
* 功能:string转int
* 注意:
* 1、字符串是否为空;
* 2、忽略\t 或空格;
* 3、溢出判断;
* 4、输入字符串只有“+”或“-”号时;
* 5、扫描参数src字符串,跳过前面的空格字符,直到遇上数
字或正负符号才开始做转换,而再遇到非数字或字符串结束时
('\0')才结束转换,并将结果返回。
*/
int convertionStringToInt(char *src)
{
bool flag=false;
long num=0; /*使用long类型,数据溢出情形*/
int minus=0;
if((NULL == src)||('\0'== *src)) //判断如惨字符串指针是否为空
{
return 0;
}
if(('\t' == *src)||(' ' == *src)) //忽略tab字符和空格字符
{
src ++;
}
if('-' == *src) //判断是否是‘+’ 或 ‘-’符号
{
flag=true;
src++;
}
else if('+' == *src)
{
src++;
}
minus=flag?-1:1;
while('\0' != *src)
{
if(('0' <= *src)&&('9' >= *src))
{
num= num*10+minus*((*src)-'0');
if((!flag && num > 0x7FFFFFFF)
|| (flag && num < (signed int)0x80000000)) //判断转换后的整型数是否溢出,注意正负数均要判断
{
num = 0;
break;
}
src++;
}
else
{
break; //遇到非数字字符时结束转换
}
}
return num;
}
int main()
{
char data[8][15]={"4673","15234234234","-3489","+9776","ab67","123bd","+","-"};
int i=0;
int val=0;
for(i=0;i<8;i++)
{
printf("Before data[%ld]=%s ",i,data[i]);
val=convertionStringToInt(data[i]);
printf("After Convert=%d\n",val);
}
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老师侮辱学生是否犯法 开启河南航拍新篇章 河南省航拍协会第一次会员代表大会召开 我想问下poscer m-3032款型手表售价是多少??? wp6m是啥意思 看图软件哪个好哪个看图软件好 5款强大到离谱电脑软件,都是效率神器!从此远离加班 在武汉买一套房大概要多少钱 武汉华润翡翠城的优缺点 k12教育为什么会被整顿 国家为什么要叫停K12教育? iPhoneX.mqac2b/a,是什么版本 光纤宽带与普通宽带的区别? 光纤宽带和一般宽带有什么不同? 光纤宽带有哪些种类? 光纤宽带是什么业务呢? 光纤宽带与普通宽带有什么不同? 光纤宽带和普通的有什么区别 江苏的失业补助金在哪领,在支付宝或者微信可以申... 江苏智慧人社失业登记原因填写错了怎么修改 光纤和宽带有什么区别? 失业保险待遇申领一直在审核中是怎么回事? 宽带和光纤,两者之间究竟有什么区别? 无锡失业补助金怎么领取 光纤宽带有哪些优点? 江苏智慧人社上面申请了失业补助金怎么网上取消 光纤宽带,能不能解释下是什么? 江苏失业金领取条件是什么? 光纤宽带与普通宽带有什么区别?为什么有人说一定... 江苏失业保险金领取条件 【江苏省人社厅】您好!您申请的失业保险金已审核通... mqac2kh/a电信能用吗? 编程中怎么把输出的数字变成字母(名字) 得加什么... 苹果11pro型号号码MQAC2ZD/A是什么意思? 将一串数字转换为另一串数字或者掺杂着字母,有没... iPhoneX MQAF2B/A支持电信么? 怎样用VB 遍个小程序,实现数字与ASCII码之间的转换 你好,我的苹果X型号是MQAC2QL/A,为什么用电信只... 如何建立一个纯数字的密码字典? 一个3位数的数字转换小程序 mq-2的A,B脚有区别没? 帮用python做个小程序 JAVA写小程序 在键盘上输入一串字符串例如“huahua”... 苹果8plusMQ8D2ZA/A是什么版本的 苹果8plus型号mQ8E2ZA/A是真的吗 c语言小程序 最近在用C#编写一个小程序,比如,把string str=&#39;a... 苹果8P型号MQ982LL/A是什么意思?哪里产的? 小程序迁移名称设置规则是什么? 苹果8mq862/a是国行吗 微信小程序 传中文参给html页面,得到的是%EF%BB%...