溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用C/C++怎么將字符串與數(shù)字進(jìn)行互轉(zhuǎn)

發(fā)布時(shí)間:2021-01-04 15:14:52 來源:億速云 閱讀:188 作者:Leah 欄目:編程語言

使用C/C++怎么將字符串與數(shù)字進(jìn)行互轉(zhuǎn)?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

C數(shù)字轉(zhuǎn)字符串

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

//浮點(diǎn)數(shù)轉(zhuǎn)字符串,number為要轉(zhuǎn)換的數(shù),ndigit表示要轉(zhuǎn)換的位數(shù)
char *gcvt(double number, int ndigit, char *buf);
//浮點(diǎn)數(shù)轉(zhuǎn)字符串,number為要轉(zhuǎn)換的數(shù),ndigit表示要轉(zhuǎn)換的位數(shù), decpt和sign為輸出參數(shù),decpt為小數(shù)點(diǎn)位
//數(shù),sign為符號(hào)。返回轉(zhuǎn)換后的字符串,不含符號(hào)和小數(shù)點(diǎn)。
char *ecvt(double number, int ndigits, int *decpt, int *sign);
//fcvt與ecvt不同在于fcvt的ndigit參數(shù)表示小數(shù)點(diǎn)后的長(zhǎng)度
char *fcvt(double number, int ndigits, int *decpt, int *sign);

C字符串轉(zhuǎn)數(shù)字

int sscanf(const char *str, const char *format, ...);
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 將字符串轉(zhuǎn)換成整數(shù) i = 15
sscanf( str, "%f", &fp ); // 將字符串轉(zhuǎn)換成浮點(diǎn)數(shù) 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++字符串轉(zhuǎn)數(shù)字

C++11增加std::stoi/stol/stoll等等函數(shù)可以 轉(zhuǎn)換

C++數(shù)字轉(zhuǎn)字符串

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

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 *互轉(zhuǎn)

string轉(zhuǎn)char *或char []

//1. 調(diào)string的data函數(shù)
string s = "abc";  //data函數(shù)不會(huì)加結(jié)束符'\0' c_str會(huì)加
char *p = s.data();

//2. 調(diào)string的c_str函數(shù)
string s = "abc";
char *p = s.c_str();

//3. 調(diào)string的copy函數(shù)
string s = "abc";
char p[10];
s.copy(p, 3, 0); //復(fù)制3個(gè)字符,從0位置開始
p[3] = '\0';  //需要手動(dòng)加結(jié)束符

char *或char []轉(zhuǎn)string

string s;
char *p = "123";
s = p; //直接復(fù)制即可

關(guān)于使用C/C++怎么將字符串與數(shù)字進(jìn)行互轉(zhuǎn)問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI