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

微信小程序字符串转换为数字如何实现?,第1张

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=0i<8i++)

{

printf("Before

data[%ld]=%s

",i,data[i])

val=convertionStringToInt(data[i])

printf("After

Convert=%d\n",val)

}

return

0

}

方法主要有三种 转换函敬薯数、强制类型转换、利用js变量弱类型转换。

转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换亮轮者成浮点数。只有桐肢对String类型调用这些方法,这两个函数才能正确运行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12376662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存