好奇怪的乙個問題,我第一次碰到,嘗試了多少次也沒有找到合適的解決方法,最後自己封裝了乙個函式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...