商城系統(tǒng) 注冊

小程序字符串轉(zhuǎn)換為數(shù)字如何實現(xiàn)

2018-01-18|HiShop
導讀:商家在開發(fā)小程序時,經(jīng)常會遇到字符串需要轉(zhuǎn)換為數(shù)字,那么小程序如何實現(xiàn)字符串轉(zhuǎn)換為數(shù)字。...

1、字符串轉(zhuǎn)換成數(shù)字:

C語言庫函數(shù):atoi  實現(xiàn)了此功能。

int atoi(const char *nptr);

函數(shù)說明: 參數(shù)nptr字符串,如果第一個非空格字符存在或者不是數(shù)字也不是正負號則返回零,否則開始做類型轉(zhuǎn)換,之后檢測到非數(shù)字(包括結(jié)束符 \0) 字符時停止轉(zhuǎn)換,返回整型數(shù)。

 

代碼如下:

#include <stdio.h>

#include <string.h>

#include <stdbool.h>

/**

*    功能:string轉(zhuǎn)int

*    注意:

*    1、字符串是否為空;

*    2、忽略\t 或空格;

*    3、溢出判斷;

*    4、輸入字符串只有“+”或“-”號時;

*    5、掃描參數(shù)src字符串,跳過前面的空格字符,直到遇上數(shù)

字或正負符號才開始做轉(zhuǎn)換,而再遇到非數(shù)字或字符串結(jié)束時

('\0')才結(jié)束轉(zhuǎn)換,并將結(jié)果返回。

*/

int convertionStringToInt(char *src)

{

bool flag=false;

long num=0;  /*使用long類型,數(shù)據(jù)溢出情形*/

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))    //判斷轉(zhuǎn)換后的整型數(shù)是否溢出,注意正負數(shù)均要判斷

{

num = 0;

break;

}

src++;

}

else        

{

break; //遇到非數(shù)字字符時結(jié)束轉(zhuǎn)換

}

}

 

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;

}

電話咨詢 預約演示 0元開店