国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
c語言字符串與整數(shù)之間的轉(zhuǎn)換

http://blog.csdn.net/ruizeng88/article/details/6678760

2011

在c語言中,我們經(jīng)常面臨需要將字符串轉(zhuǎn)換為整型,以及將整型轉(zhuǎn)化為字符串的問題。

將字符串轉(zhuǎn)換為整數(shù)的函數(shù)在stdlib.h中定義:

int atoi(const char *str);

atoi函數(shù)會跳過str中前面出現(xiàn)的空格,從第一個數(shù)字開始轉(zhuǎn)換。下面是我的實現(xiàn):

  1. int my_atoi(const char *str){  
  2.     //argument check first!  
  3.     assert(NULL != str);  
  4.     int ret=0,sign=1;  
  5.     //skip tab and space  
  6.     for(; *str==' '||*str=='\t'; str++);  
  7.     if(*str == '-')sign = -1;  
  8.     if(*str == '-' || *str == '+')str++;  
  9.     while(isdigit(*str)){  
  10.         ret = ret*10 + *str - '0';  
  11.         str++;  
  12.         }  
  13.     return sign*ret;  
  14. }  
要注意的幾點:

1.參數(shù)檢驗。始終要放在最開始,在輸入是指針的情況下,永遠不要忘記首先檢驗是否是NULL指針;

2.字符串開始處的空格(我還加入了制表符)要注意跳過;

3.符號,不要忘了數(shù)字字符串第一個字符可能出現(xiàn)加號和減號!

對于將數(shù)字轉(zhuǎn)換為字符串,c標準中并沒有定義(itoa只是在一些編譯器中自己定義)。c標準中沒有定義的原因我覺得是數(shù)字轉(zhuǎn)成字符串可以使用sprintf格式化輸出函數(shù)來完成。當然我們可以自己編寫一個itoa函數(shù)。這里的參數(shù)原型參照的是vc中定義的itoa:

  1. #define ABS(cond) (cond>0?cond:-cond)  
  2. char   *my_itoa(int   value,   char   *string,   int   radix)  
  3. {  
  4.     assert(string!=NULL);  
  5.     char tmp[32]={'\0'};  
  6.     int tmpval=ABS(value);  
  7.     int i,j;  
  8.     for(i=0;i<32;i++)  
  9.     {                  
  10.                      tmp[i]=(tmpval%radix)+'0';  
  11.                      tmpval=tmpval/radix;  
  12.                      if(tmpval==0)  
  13.                                  break;  
  14.                       }  
  15.      if(value<0)tmp[++i]='-';  
  16.      for(j=0;i>=0;i--)  
  17.           string[j++]=tmp[i];  
  18.      string[j]='\0';  
  19.      return string;  
  20.         }  
當然,一般情況下我們使用sprintf就可以完成任務啦:

char num[32];

sprintf(num,"%d",12345);

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
實現(xiàn)整數(shù)轉(zhuǎn)化為字符串函數(shù)itoa()函數(shù)
C語言字符串,字符轉(zhuǎn)數(shù)字,數(shù)字轉(zhuǎn)字符(轉(zhuǎn))
C語言itoa()函數(shù)和atoi()函數(shù)詳解(整數(shù)轉(zhuǎn)字符C實現(xiàn))
字符串轉(zhuǎn)換整數(shù)及整數(shù)轉(zhuǎn)換字符串
sscanf的高級用法
[轉(zhuǎn)載]C語言 格式化字符
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服