奇怪的atoi函式!

2021-05-25 06:45:53 字數 1074 閱讀 4074

好奇怪的乙個問題,我第一次碰到,嘗試了多少次也沒有找到合適的解決方法,最後自己封裝了乙個函式my_atoi,不知大俠們有過這樣的經歷沒?

char json_value[10];

通過下面的解析函式,解析出prod_total,然後*num = atoi(json_value);

結果卻為0!!!!,然後自己封了乙個簡單的atoi,*num = my_atoi(json_value)列印出來卻是70!!!

問題補充:我在linux下是正確的,這個程式是板子上的,放在板子裡跑就錯了!

求解!!!!!!!!

int json_object_get(char *json, const char *name, char *outbuf, int outbuf_len)

char *p1 = json, *p2 = null, *p3 = null;

int len;

memset(outbuf,0x0,outbuf_len);

while(1)

p2 = strstr(p1, name);

if(p2 == null)

return -1;

if(*(p2-1) == 34 || *(p2+1) == 34)//全字匹配

break;

else

p1 = p2 + strlen(name)+3;

p2 += strlen(name)+3; 

if(*p2 == 34)//兩個""   連在一起的

return 0;

p3 = strchr(p2,34);//34 -->"

if(p3 == null)//json格式錯誤

return -2;

len = p3 - p2 ;//110127 add "-1"

len = (len < outbuf_len-1 )?len:(outbuf_len-1);//對長度超過儲存空間採用擷取

memcpy(outbuf,p2,len);

#ifdef test_product

uart_printf(outbuf);

#endif

return len;

atoi函式的實現

atoi函式的實現 寫這個函式的實現的原因很簡單,而且也很容易,直接抄襲的庫中的原始碼。因為有朋友面試的時候遇到了,前幾天乙個哥們面intel的時候也被問到了,巧合的是今天看廣聯達的面試題再次遇到。一周之內看到三次,讓我不得不重視一下啊,畢竟自己也要開始面試題呀面試題了!其實這個函式比較容易實現,不...

atoi函式的實現

atoi函式的實現 寫atoi函式的時候需要注意一下幾點 1.字串前的空白 2.字串所表示數值的正負號 3.結束條件,遇到非數字或者字元 0 結束 4.考慮溢位,分別與int值所能表示的最大 0x7fffffff 和最小值 0x8000000 進行比較 5.考慮異常輸入情況下,用全域性變數valid...

atoi 函式的實現

atoi 函式的功能 將字串轉換成整型數 atoi 會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負號才開始做轉換,而再遇到非數字或字串時 0 才結束轉化,並將結果返回 返回轉換後的整型數 atoi 函式實現的 name xif coder xifan 2010 yahoo.cn ti...