C/C++字符串與數字互轉

C數字轉字符串

int sprintf(char *str, const char *format, ...);
char c[10];
sprintf(c, "%d", 15); // 將整數轉換成字符串

//浮點數轉字符串,number爲要轉換的數,ndigit表示要轉換的位數
char *gcvt(double number, int ndigit, char *buf);
//浮點數轉字符串,number爲要轉換的數,ndigit表示要轉換的位數, decpt和sign爲輸出參數,decpt爲小數點位
//數,sign爲符號。返回轉換後的字符串,不含符號和小數點。
char *ecvt(double number, int ndigits, int *decpt, int *sign);
//fcvt與ecvt不同在於fcvt的ndigit參數表示小數點後的長度
char *fcvt(double number, int ndigits, int *decpt, int *sign); 

C字符串轉數字

int sscanf(const char *str, const char *format, ...);
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 將字符串轉換成整數 i = 15
sscanf( str, "%f", &fp ); // 將字符串轉換成浮點數 fp = 15.455000

int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);


double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);
long int strtol(const char *nptr, char **endptr, int base);
long long int strtoll(const char *nptr, char **endptr, int base);
unsigned long int strtoul(const char *nptr, char **endptr, int base);
unsigned long long int strtoull(const char *nptr, char **endptr, int base);

C++字符串轉數字

C++11增加std::stoi/stol/stoll等等函數可以 轉換

C++數字轉字符串

C++11增加了全局函數std::to_string,以及std::stoi/stol/stoll等等函數

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val)

string和char *互轉

string轉char *或char []

//1. 調string的data函數
string s = "abc";    //data函數不會加結束符'\0'  c_str會加
char *p = s.data();

//2. 調string的c_str函數
string s = "abc";
char *p = s.c_str();

//3. 調string的copy函數
string s = "abc";
char p[10];
s.copy(p, 3, 0);  //複製3個字符,從0位置開始
p[3] = '\0';   //需要手動加結束符

char *或char []轉string

string s;
char *p = "123";
s = p; //直接複製即可
發佈了5 篇原創文章 · 獲贊 15 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章