int
成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),成都小程序開發(fā),十載建站對(duì)玻璃隔斷等多個(gè)方面,擁有多年的網(wǎng)站運(yùn)維經(jīng)驗(yàn)。
iValue;//整型數(shù)
char
sz[10];//字符串
sprintf(sz,
"%d",
iValue);//這句需要頭文件#include
stdio.h
/*或者*/
itoa(iValue,
sz,
10);
//這句需要頭文件#include
ctype.h
sprintf類似于printf,printf比sprintf少第一個(gè)參數(shù),就是直接在輸出界面輸出相應(yīng)的東西,而sprintf就是將你要輸出的東西按相應(yīng)格式存放到第一個(gè)參數(shù)的字符串中。
itoa是直接將整型數(shù)轉(zhuǎn)化成字符串
1.int/float to string/array:
C語言提供了幾個(gè)標(biāo)準(zhǔn)庫函數(shù),可以將任意類型(整型、長(zhǎng)整型、浮點(diǎn)型等)的數(shù)字轉(zhuǎn)換為字符串,下面列舉了各函數(shù)的方法及其說明。
● itoa():將整型值轉(zhuǎn)換為字符串。
● ltoa():將長(zhǎng)整型值轉(zhuǎn)換為字符串。
● ultoa():將無符號(hào)長(zhǎng)整型值轉(zhuǎn)換為字符串。
● gcvt():將浮點(diǎn)型數(shù)轉(zhuǎn)換為字符串,取四舍五入。
● ecvt():將雙精度浮點(diǎn)型值轉(zhuǎn)換為字符串,轉(zhuǎn)換結(jié)果中不包含十進(jìn)制小數(shù)點(diǎn)。
● fcvt():指定位數(shù)為轉(zhuǎn)換精度,其余同ecvt()。
除此外,還可以使用sprintf系列函數(shù)把數(shù)字轉(zhuǎn)換成字符串,其比itoa()系列函數(shù)運(yùn)行速度慢
2. string/array to int/float
C/C++語言提供了幾個(gè)標(biāo)準(zhǔn)庫函數(shù),可以將字符串轉(zhuǎn)換為任意類型(整型、長(zhǎng)整型、浮點(diǎn)型等)。
● atof():將字符串轉(zhuǎn)換為雙精度浮點(diǎn)型值。
● atoi():將字符串轉(zhuǎn)換為整型值。
● atol():將字符串轉(zhuǎn)換為長(zhǎng)整型值。
● strtod():將字符串轉(zhuǎn)換為雙精度浮點(diǎn)型值,并報(bào)告不能被轉(zhuǎn)換的所有剩余數(shù)字。
● strtol():將字符串轉(zhuǎn)換為長(zhǎng)整值,并報(bào)告不能被轉(zhuǎn)換的所有剩余數(shù)字。
● strtoul():將字符串轉(zhuǎn)換為無符號(hào)長(zhǎng)整型值,并報(bào)告不能被轉(zhuǎn)換的所有剩余數(shù)字。
C語言實(shí)現(xiàn):
#include
#include
void ? ? ?itoa (int n,char s[]);
//atoi 函數(shù):將s轉(zhuǎn)換為整形數(shù)
int main(void )
{
int n;
char s[100];
printf("Input n:\n");
scanf("%d",n);
printf("the string : \n");
itoa (n,s);
return 0;
}
void itoa (int n,char s[])
{
int i,j,sign;
if((sign=n)0)//記錄符號(hào)
n=-n;//使n成為正數(shù)
i=0;
do{
s[i++]=n%10+'0';//取下一個(gè)數(shù)字
}
while ((n/=10)0);//刪除該數(shù)字
if(sign0)
s[i++]='-';
s[i]='\0';
for(j=i;j=0;j--)//生成的數(shù)字是逆序的,所以要逆序輸出
printf("%c",s[j]);
}
拓展資料
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語法,稱為ANSI C,作為C語言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語言的第三個(gè)官方標(biāo)準(zhǔn),也是C語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。
C#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET?Framework之上的高級(jí)程序設(shè)計(jì)語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺(tái)亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型)是直接集成的,而且它是微軟公司 .NET windows網(wǎng)絡(luò)框架的主角。
1、itoa
功 能:把一整數(shù)轉(zhuǎn)換為字符串
用 法:char *itoa(int value, char *string, int radix);
詳細(xì)解釋:itoa是英文integer to array(將int整型數(shù)轉(zhuǎn)化為一個(gè)字符串,并將值保存在數(shù)組string中)的縮寫.
參數(shù):
value: 待轉(zhuǎn)化的整數(shù)。
radix: 是基數(shù)的意思,即先將value轉(zhuǎn)化為radix進(jìn)制的數(shù),范圍介于2-36,比如10表示10進(jìn)制,16表示16進(jìn)制。
* string: 保存轉(zhuǎn)換后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數(shù)的頭文件是"stdlib.h"
2、ltoa
功 能:把一長(zhǎng)整形轉(zhuǎn)換為字符串
用 法:char *ltoa(long value, char *string, int radix);
詳細(xì)解釋:itoa是英文long integer to array(將long int長(zhǎng)整型數(shù)轉(zhuǎn)化為一個(gè)字符串,并將值保存在數(shù)組string中)的縮寫.
參數(shù):
value: 待轉(zhuǎn)化的長(zhǎng)整型數(shù)。
radix: 是基數(shù)的意思,即先將value轉(zhuǎn)化為radix進(jìn)制的數(shù),范圍介于2-36,比如10表示10進(jìn)制,16表示16進(jìn)制。
* string: 保存轉(zhuǎn)換后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數(shù)的頭文件是"stdlib.h"
3、ultoa
功 能:把一無符號(hào)長(zhǎng)整形轉(zhuǎn)換為字符串
用 法:char *ultoa(unsigned long value, char *string, int radix);
詳細(xì)解釋:itoa是英文unsigned long integer to array(將unsigned long int無符號(hào)長(zhǎng)整型數(shù)轉(zhuǎn)化為一個(gè)字符串,并將值保存在數(shù)組string中)的縮寫.
參數(shù):
value: 待轉(zhuǎn)化的無符號(hào)長(zhǎng)整型數(shù)。
radix: 是基數(shù)的意思,即先將value轉(zhuǎn)化為radix進(jìn)制的數(shù),范圍介于2-36,比如10表示10進(jìn)制,16表示16進(jìn)制。
* string: 保存轉(zhuǎn)換后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
備注:該函數(shù)的頭文件是"stdlib.h"
4、gcvt
功 能:把浮點(diǎn)型數(shù)轉(zhuǎn)換為字符串,取四舍五入
用 法:char *gcvt(double value, int ndigit, char *buf);
詳細(xì)解釋:gcvt()用來將參數(shù)number轉(zhuǎn)換成ASCII碼字符串,參數(shù)ndigits表示顯示的位數(shù)。gcvt()與ecvt()和fcvt()不同的地方在于,gcvt()所轉(zhuǎn)換后的字符串包含小數(shù)點(diǎn)或正負(fù)符號(hào)。若轉(zhuǎn)換成功,轉(zhuǎn)換后的字符串會(huì)放在參數(shù)buf指針?biāo)傅目臻g。
參 數(shù):
value:待轉(zhuǎn)化的浮點(diǎn)數(shù)。
ndigit:存儲(chǔ)的有效數(shù)字位數(shù)。
*buf:結(jié)果的存儲(chǔ)位置。
返回值:
char * :指向生成的字符串, 同*buf。
備注:該函數(shù)的頭文件是"stdlib.h"
5、ecvt
功 能:將雙精度浮點(diǎn)型數(shù)轉(zhuǎn)換為字符串,轉(zhuǎn)換結(jié)果中不包括十進(jìn)制小數(shù)點(diǎn)
用 法:char *ecvt(double value, int ndigit, int *decpt, int *sign);
詳細(xì)解釋:ecvt函數(shù)把一個(gè)雙精度浮點(diǎn)數(shù)轉(zhuǎn)換成一個(gè)字符串。value參數(shù)是要轉(zhuǎn)換的浮點(diǎn)數(shù)。這個(gè)函數(shù)存儲(chǔ)最多ndigit個(gè)數(shù)字值作為一個(gè)字符串,并添加一個(gè)空數(shù)字符('\0'),如果value中的數(shù)字個(gè)數(shù)超過ndigit,低位數(shù)字被舍入。如果少于ndigit個(gè)數(shù)字,該字符串用0填充。
只有數(shù)字才存儲(chǔ)在該字符串中,小數(shù)點(diǎn)位置和value符號(hào)在調(diào)用之后從decpt和sign獲取。decpt參數(shù)指出給出小數(shù)點(diǎn)位置的整數(shù)值,它是從該字符串的開頭位置計(jì)算的。0或負(fù)數(shù)指出小數(shù)點(diǎn)在第一個(gè)數(shù)字的左邊。sign參數(shù)指出一個(gè)指出轉(zhuǎn)換的數(shù)的符號(hào)的整數(shù)。如果該整數(shù)為0,這個(gè)數(shù)為正數(shù),否則為負(fù)數(shù)。
參 數(shù):
value:待轉(zhuǎn)換的雙精度浮點(diǎn)數(shù)。
ndigit:存儲(chǔ)的有效數(shù)字位數(shù)。
*decpt:存儲(chǔ)的小數(shù)點(diǎn)位置。
*sign:轉(zhuǎn)換的數(shù)的符號(hào)。
返回值:
char*:指向生成的字符串。
備注:該函數(shù)的頭文件是"stdlib.h"
6、fcvt
功 能:指定位數(shù)為轉(zhuǎn)換精度,其余同ecvt
用 法:char *fcvt(double value, int ndigit, int *decpt, int *sign);
詳細(xì)解釋:fcvt函數(shù)把一個(gè)雙精度浮點(diǎn)數(shù)轉(zhuǎn)換成一個(gè)字符串。value參數(shù)是要轉(zhuǎn)換的浮點(diǎn)數(shù)。參與轉(zhuǎn)換的實(shí)際值保留的小數(shù)位數(shù)由ndigit決定。
只有數(shù)字才存儲(chǔ)在該字符串中,小數(shù)點(diǎn)位置和value符號(hào)在調(diào)用之后從decpt和sign獲取。decpt參數(shù)指出給出小數(shù)點(diǎn)位置的整數(shù)值,它是從該字符串的開頭位置計(jì)算的。0或負(fù)數(shù)指出小數(shù)點(diǎn)在第一個(gè)數(shù)字的左邊。sign參數(shù)指出一個(gè)指出轉(zhuǎn)換的數(shù)的符號(hào)的整數(shù)。如果該整數(shù)為0,這個(gè)數(shù)為正數(shù),否則為負(fù)數(shù)。
參 數(shù):
value:待轉(zhuǎn)換的雙精度浮點(diǎn)數(shù)
ndigit:轉(zhuǎn)換的字符串中包含小數(shù)點(diǎn)后幾位
*decpt:返回小數(shù)點(diǎn)在串中的位置
*sign:符號(hào)標(biāo)志。
返回值:
char*:指向生成的字符串。
備注:該函數(shù)的頭文件是"stdlib.h"
根據(jù)編譯環(huán)境,有如下方式:
1 部分編譯器中,支持__FUNCTION__或__func__宏。該宏為編譯器定義,值為被調(diào)用函數(shù)的函數(shù)名轉(zhuǎn)換成的字符串。如在func()中調(diào)用__FUNCTION__,則該宏的值為"func"。
2 如果編譯器不支持上述宏名,那么需要手動(dòng)添加宏。可以有如下兩種方式:
a. 直接定義對(duì)應(yīng)字符串,如
#define FUNC_NAME "func"
字符串中的直接寫明。
b. 統(tǒng)一函數(shù)轉(zhuǎn)換。利用宏定義的#操作,可以實(shí)現(xiàn)標(biāo)識(shí)符向字符串的轉(zhuǎn)換。
#define FUNC_NAME(x) #x
這時(shí)調(diào)用FUNC_NAME(func)就等效于"func"。
對(duì)于int型,可以調(diào)用函數(shù)itoa。
char*itoa(int value,char*string,int radix);
功能為將任意類型的數(shù)字轉(zhuǎn)換為字符串。
int value 被轉(zhuǎn)換的整數(shù),char *string 轉(zhuǎn)換后儲(chǔ)存的字符數(shù)組,int radix 轉(zhuǎn)換進(jìn)制數(shù),如2,8,10,16 進(jìn)制等。
float和double類型沒有特定的轉(zhuǎn)換函數(shù)。
不過不論是float, double還是int,都可以通過sprintf函數(shù)進(jìn)行轉(zhuǎn)換。
sprintf類似于printf,都是按照格式化字符串輸出參數(shù)到目標(biāo)。不過printf是輸出到終端,而sprintf是輸出到第一個(gè)參數(shù)的字符串中。
定義
int i;
float f;
double d;
再定義字符串空間
char buf[100];
調(diào)用
sprintf(buf, "%d",i);
sprintf(buf, "%f",f);
sprintf(buf, "%lf",d);
就可以分別把int, float, double轉(zhuǎn)換成值對(duì)應(yīng)的字符串。
C語言提供了幾個(gè)標(biāo)準(zhǔn)庫函數(shù),可以將任意類型(整型、長(zhǎng)整型、浮點(diǎn)型等)的數(shù)字轉(zhuǎn)換為字符串。用itoa()函數(shù)將整數(shù)轉(zhuǎn)換為字符串。
itoa()函數(shù)有3個(gè)參數(shù):第一個(gè)參數(shù)是要轉(zhuǎn)換的數(shù)字,第二個(gè)參數(shù)是要寫入轉(zhuǎn)換結(jié)果的目標(biāo)字符串,第三個(gè)參數(shù)是轉(zhuǎn)移數(shù)字時(shí)所用的基數(shù)。在上例中,轉(zhuǎn)換基數(shù)為10。
#include stdio.h
int main()
{
int a[4]={1,2,3,4};
char b[4];
for(int i=0;i4;i++)
b[i]=a[i];
for(int i=0;i4;i++)
printf("%c",b[i]);
return 0;
}
字符串在存儲(chǔ)上類似字符數(shù)組
它每一位單個(gè)元素都是能提取的,字符串的零位是它的長(zhǎng)度,如s[0]=10,這提供給我們很多方便,例如高精度運(yùn)算時(shí)每一位都能轉(zhuǎn)化為數(shù)字存入數(shù)組。
通常以串的整體作為操作對(duì)象,如:在串中查找某個(gè)子串、求取一個(gè)子串、在串的某個(gè)位置上插入一個(gè)子串以及刪除一個(gè)子串等。
兩個(gè)字符串相等的充要條件是:長(zhǎng)度相等,并且各個(gè)對(duì)應(yīng)位置上的字符都相等。設(shè)p、q是兩個(gè)串,求q在p中首次出現(xiàn)的位置的運(yùn)算叫做模式匹配。串的兩種最基本的存儲(chǔ)方式是順序存儲(chǔ)方式和鏈接存儲(chǔ)方式。
以上內(nèi)容參考:百度百科-字符串
當(dāng)前標(biāo)題:c語言轉(zhuǎn)字符串函數(shù) c語言中將數(shù)字轉(zhuǎn)換為字符串的函數(shù)
網(wǎng)址分享:http://muchs.cn/article14/hhisge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、服務(wù)器托管、定制開發(fā)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)