最好的方法是自己編寫(xiě)一個(gè)函數(shù)。如果你要偏方的話,我以前用過(guò)這樣一個(gè)偏方(VC6):先用itoa函數(shù)將其轉(zhuǎn)換成字符串,在用strlen函數(shù),求字符串的長(zhǎng)度。 這兩個(gè)函數(shù):itoa是在stdlib.h中定義的. strlen是在string.h中的 例子: int num=999; char buff[20]; int len; itoa(num,buff,10); len=strlen(buff);
創(chuàng)新互聯(lián)是專業(yè)的防城網(wǎng)站建設(shè)公司,防城接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行防城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
希望采納
C語(yǔ)言中字符串長(zhǎng)度的函數(shù)是strlen(),一個(gè)字符的長(zhǎng)度為1;
函數(shù)原型:
unsigned int strlen (char *s);頭文件:
#include string.h參數(shù)說(shuō)明:s為指定的字符串;
功能說(shuō)明:strlen()用來(lái)計(jì)算指定的字符串s 的長(zhǎng)度,不包括結(jié)束字符'\0';
返回值:返回字符串s 的字符數(shù);
注意:strlen() 函數(shù)計(jì)算的是字符串的實(shí)際長(zhǎng)度,遇到第一個(gè)'\0'結(jié)束。
示例:
#includestdio.h#includestring.hint main(){ char str[] = "ab\nxyz";//\n為回車字符,占一個(gè)字節(jié) printf("strlen(str)=%d\n", strlen(str)); return 0;}//輸出結(jié)果:strlen(str)=6 收起
1、在c語(yǔ)言中,可以通過(guò)庫(kù)函數(shù)strlen來(lái)計(jì)算字符串的長(zhǎng)度,也可以通過(guò)循環(huán)計(jì)數(shù)來(lái)求取字符串長(zhǎng)度。
函數(shù)原型:unsigned
int
strlen(char
*str);
功
能:統(tǒng)計(jì)字符串str中字符的個(gè)數(shù),不包含'\0'
返
回
值:返回字符個(gè)數(shù)
2、用strlen函數(shù)實(shí)現(xiàn):
char str[20];
int len; // 保存數(shù)組的長(zhǎng)度
scanf("%s", str);
len = strlen(str); // 計(jì)算字符數(shù)組str的長(zhǎng)度
注:需將頭文件#include
添加進(jìn)源文件中。3、用循環(huán)來(lái)實(shí)現(xiàn):
char str[20];
int len=0; // 保存數(shù)組的長(zhǎng)度
scanf("%s", str);
while(str[len] != '\0') // 未檢測(cè)到結(jié)束字符
{
len++; // 統(tǒng)計(jì)字符數(shù)組str的長(zhǎng)度
}
用 sizeof 可以獲得數(shù)據(jù)類型或變量在內(nèi)存中所占的字節(jié)數(shù)。同樣,用 sizeof 也可以獲得整個(gè)數(shù)組在內(nèi)存中所占的字節(jié)數(shù)。因?yàn)閿?shù)組中每個(gè)元素的類型都是一樣的,在內(nèi)存中所占的字節(jié)數(shù)都是相同的,所以總的字節(jié)數(shù)除以一個(gè)元素所占的字節(jié)數(shù)就是數(shù)組的長(zhǎng)度。
比較特別的是,比特右移()運(yùn)算符可以是算術(shù)(左端補(bǔ)最高有效位)或是邏輯(左端補(bǔ)0)位移。例如,將11100011右移3比特,算術(shù)右移后成為11111100,邏輯右移則為00011100。
運(yùn)算符的優(yōu)先級(jí)從高到低大致是:?jiǎn)文窟\(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符(=)和逗號(hào)運(yùn)算符。
C語(yǔ)言特點(diǎn):
其一,廣泛性。C語(yǔ)言的運(yùn)算范圍的大小直接決定了其優(yōu)劣性。C語(yǔ)言中包含了34種運(yùn)算符,因此運(yùn)算范圍要超出許多其它語(yǔ)言,此外其運(yùn)算結(jié)果的表達(dá)形式也十分豐富。
其二,簡(jiǎn)潔性。9類控制語(yǔ)句和32個(gè)關(guān)鍵字是C語(yǔ)言所具有的基礎(chǔ)特性,使得其在計(jì)算機(jī)應(yīng)用程序編寫(xiě)中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時(shí)還能夠支持高級(jí)編程,避免了語(yǔ)言切換的繁瑣。
十進(jìn)制數(shù)字個(gè)數(shù) 和長(zhǎng)度 有多種方法 算得。
下面用兩種方法計(jì)算。負(fù)數(shù)有個(gè)符號(hào)位,長(zhǎng)度比位數(shù)多 m=1。
占內(nèi)存的大小用sizeof(int) 可得,通常 32位機(jī)為4字節(jié),64位機(jī)為8字節(jié)。
例如:
#include stdio.h
int main(){
int a=123456;
int n,m=0;
char s[60];
if (a0) m=1;
sprintf(s,"%d",a);
n = strlen(s);
printf("a has digit %d length %d\n",n-m,n);
n=0;
while (1){
a = a/10;
n++;
if (a==0)break;
}
printf("a has digit %d length %d\n",n,n+m);
printf("int has %d bytes\n",sizeof(int) );
return 0;
}
正確的答案是5,題目選項(xiàng)有誤。
首先strlen()函數(shù)返回的長(zhǎng)度是不包含'\0',
第一個(gè)字符為:a
第二個(gè)字符為:b
第三個(gè)字符為:\n (換行符)
第四個(gè)字符為:2
第五個(gè)字符為:\ (\\轉(zhuǎn)義為\)
所以答案為5。
(下圖為實(shí)際代碼演示)
擴(kuò)展內(nèi)容:
strlen()函數(shù)(C語(yǔ)言函數(shù)):
strlen所作的僅僅是一個(gè)計(jì)數(shù)器的工作,它從內(nèi)存的某個(gè)位置(可以是字符串開(kāi)頭,中間某個(gè)位置,甚至是某個(gè)不確定的內(nèi)存區(qū)域)開(kāi)始掃描,直到碰到第一個(gè)字符串結(jié)束符'\0'為止,然后返回計(jì)數(shù)器值(長(zhǎng)度不包含'\0')。
參考資料:strlen函數(shù) - 百科
標(biāo)題名稱:c語(yǔ)言中數(shù)字長(zhǎng)度的函數(shù)是 c語(yǔ)言數(shù)值長(zhǎng)度
轉(zhuǎn)載注明:http://chinadenli.net/article22/dodecjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、App設(shè)計(jì)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容