在寫程式的時候常常碰到字串與數字相互轉換的問題,這裡做乙個小小的總結。
字串與數字的轉換的方法比較多,按照不同的開發環境可以分為c/c++/mfc,當然這三者存在著包含關係,在c開發環境中實現的方法在c++開發環境自然可以用,而用c++開發環境使用的方法在mfc一樣也可以使用。由於c++/mfc中使用類模板、cstring類、string類等,使得解決這些問題的辦法很多,因此這裡主要介紹c開發環境中的方法。
一. 字串轉化為數字
c開發環境:主要使用atof atoi atol這三個函式。例子以及使用方法如下:
函式名: atof
功 能: 把字串轉換成浮點數
用 法: double atof(const char *nptr);
程式例:
#include
#include
int main(void)
函式名: atoi
功 能: 把字串轉換成長整型數
用 法: int atoi(const char *nptr);
程式例:
#include
#include
int main(void)
函式名: atol
功 能: 把字串轉換成長整型數
用 法: long atol(const char *nptr);
程式例:
#include
#include
int main(void)
當然,也可以自己寫函式進行實現,而且一般程式設計師面試的時候很喜歡這種題目,函式以及相應的**如下:
int str2int(constchar *str)
while(*str != 0)
//如果當前字元是數字則計算數值,移到下乙個字元
itemp = itemp * 10 + (*str - '0');
str++;
} //如果字串是以"-"開頭,則轉換成其相反數
if (*ptr == '-')
return temp;
}二. 數字轉化為字串(c開發環境)
這裡的問題就比較簡單了,直接可以利用格式化輸入函式sprintf
解決問題,也可以利用
c中的庫函式itoa()。
分別舉例如下:
char
str[10];
sprintf(str, "%d ",99);
函式名: itoa
功 能: 把一整數轉換為字串
用 法: char *itoa(int value, char *string, int radix);
程式例:
#include
#include
int main(void)
{ int number = 12345;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
C C 字串與數字相互轉換
一.利用stringstream類 1.字串到整數 stringstream sstr str int x sstr x 即從sstr中提取資料 2.整數到字串 stringstream sstr int x sstr x string str sstr.str 缺點 處理大量資料轉換速度較慢。st...
ZT C C 字串與數字相互轉換
一.利用stringstream類 1.字串到整數 stringstream sstr str int x sstr x 即從sstr中提取資料 2.整數到字串 stringstream sstr int x sstr x string str sstr.str 缺點 處理大量資料轉換速度較慢。st...
c 數字與字串的相互轉換
首先推薦用用c 的stringstream。主要原因是操作簡單。數字轉字串,int float型別 同理 include include int main 字串轉數字,int float型別 同理 int main 上面方法的優點就是使用簡單方便,確定可能會相對別的方法來說慢一點,但是一般少量的資料...