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

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;

}


【本站声明】
  1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
  2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。


KESION 科汛软件

KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。

KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!



▼点击进入科汛官网了解更多



热门标签
开发小程序
上/下篇
  • 小程序地图上的文字说明怎么实现

  • 小程序定位当前城市源代码实例

换一换相关推荐
精选内容
热点精选