c語言字元長度函式,如何在c語言中計算字串長度

時間 2021-12-19 15:01:55

1樓:

正確的答案是5,題目選項有誤。

首先strlen()函式返回的長度是不包含'\0',第乙個字元為:a

第二個字元為:b

第三個字元為:\n (換行符)

第四個字元為:2

第五個字元為:\ (\\轉義為\)

所以答案為5。

(下圖為實際**演示)

擴充套件內容:strlen()函式(c語言函式):

strlen所作的僅僅是乙個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃瞄,直到碰到第乙個字串結束符'\0'為止,然後返回計數器值(長度不包含'\0')。

2樓:匿名使用者

c語言中字串長度的函式是strlen(),乙個字元的長度為1;

函式原型:

unsigned int strlen (char *s);

標頭檔案:

#include

引數說明:s為指定的字串;

功能說明:strlen()用來計算指定的字串s 的長度,不包括結束字元'\0';

返回值:返回字串s 的字元數;

注意:strlen() 函式計算的是字串的實際長度,遇到第乙個'\0'結束。

示例:#include

#include

int main()

//輸出結果:strlen(str)=6

3樓:倒霉熊

答案是 6 也就是 c。

分別是a b \n(換行符) 2 \\(字元\) '\0'(結束符)

其中,結束符是環境自動新增的。\在c中表示轉義字元,要想輸出,必須使用\\.

4樓:

'\0'並不包含在strlen內,只作為鑑定已經結束的符號而已。答案應該是5。題目有誤。

5樓:匿名使用者

額…,a,b,2,還有轉譯字元,\\,\n,還有乙個0!一共6個滴…

如何在c語言中計算字串長度

6樓:溜溜達達

c語言的字串是由字元陣列形式儲存的,並約定'\0'(ascii碼值為0)作為字串結束符。其長度為從字串開始,到'\0'結束,所有字元的個數,不包括'\0'本身。

要獲得字串長度,有兩種方法可以使用,使用庫函式strlen()。strlen宣告在string.h中,原型為int strlen(char *str);功能為求str的長度,並返回。

對於字串str, 可以用**求長度。當str[len]為0時,退出迴圈,退出後的len值就是str的長度。

拓展資料:使用strlen函式,包含在標頭檔案string.h裡,功能就是計算字串s的(unsigned int型)不包括'\0'在內的長度。

7樓:

c語言計算字串長度,可以手動計算也可以使用庫函式或者sizeof()操作符。

方法:自定義函式求長度

使用strlen()函式

使用sizeof()操作符

int cont_str(char *s)

strlen(str); //假設str為待求的字串陣列名

sizeof(str)/sizeof(str[0]); //假設str為待求的字串陣列名

strlen()函式求出的字串長度為有效長度,既不包含字串末尾結束符 『\0』;

sizeof()操作符求出的長度包含字串末尾的結束符 『\0』;

當在函式內部使用sizeof()求解由函式的形參傳入的字元陣列的長度時,得到的結果為指標的長度,既對應變數的位元組數,而不是字串的長度,此處一定要小心。

8樓:1024程式設計師

c語言經典例子之計算乙個字串的長度

9樓:匿名使用者

用strlen得到整個長度,再用迴圈語句找到空格位置,然後計算得到兩部分的長度即可。

10樓:匿名使用者

可以做乙個小的程式來實現,這樣在你的程式中呼叫就可以的 我做了乙個 你先看看

#include

int main()

count++;

}printf("%d",count);

getchar();}

11樓:匿名使用者

用乙個子函式就可以了

int sr(const char s)

12樓:泰和劉老師黃

用迴圈語句控制,用if判斷.以空格為分界分別計算就可以

13樓:花晨溪谷

直接用int()來算

14樓:啊黑夜傳說啊

就用了乙個strlen函式

#include

#include

int main()

c語言 計算字串長度

15樓:

作者你好!

首先要分清楚:字元陣列和字串的關係!

字串存放在陣列中,因此,乙個字元陣列可以存放幾個串,單字串函式只認字串結束標誌'\0';

1. strlen(wer wer):字串為"wer_wer"這種字串常量,系統會在其後自動補上'\0';而求字串長度的函式strlen()只要遇見'\0';就返回函式值!

而且'\0'不算在其中!故返回值為7(空格也算乙個字元!)

2. strlen(wer\0wer) 其中的字串為"wer\0wer"而strlen函式遇到'\0'即結束,故返回值為:3

3. '\0'不是空格,也不是回車!通過ascii碼表,你可知道,'\0'是ascii碼值代表0(null);而空格的ascii碼為:

'\32' 32 回車的ascii碼值為'\13' 13

希望對你有所幫助!!!!

16樓:

c語言計算字串長度,可以手動計算也可以使用庫函式或者sizeof()操作符。

方法:自定義函式求長度

使用strlen()函式

使用sizeof()操作符

int cont_str(char *s)

strlen(str); //假設str為待求的字串陣列名

sizeof(str)/sizeof(str[0]); //假設str為待求的字串陣列名

strlen()函式求出的字串長度為有效長度,既不包含字串末尾結束符 『\0』;

sizeof()操作符求出的長度包含字串末尾的結束符 『\0』;

當在函式內部使用sizeof()求解由函式的形參傳入的字元陣列的長度時,得到的結果為指標的長度,既對應變數的位元組數,而不是字串的長度,此處一定要小心。

17樓:溜溜達達

c語言的字串是由字元陣列形式儲存的,並約定'\0'(ascii碼值為0)作為字串結束符。其長度為從字串開始,到'\0'結束,所有字元的個數,不包括'\0'本身。

要獲得字串長度,有兩種方法可以使用,使用庫函式strlen()。strlen宣告在string.h中,原型為int strlen(char *str);功能為求str的長度,並返回。

對於字串str, 可以用**求長度。當str[len]為0時,退出迴圈,退出後的len值就是str的長度。

拓展資料:使用strlen函式,包含在標頭檔案string.h裡,功能就是計算字串s的(unsigned int型)不包括'\0'在內的長度。

18樓:冰是沉默的水

計算長度有兩個函式:strlen sizeofstrlen 計算字串裡面一共有多少個字元sizeof 計算字串佔的總記憶體空間

如:char str[20]=;

strlen(str);等於 6

sizeof(str); 等於20

-物聯網校企聯盟技術部

19樓:樂跑小子

#include

#include

void main()

執行結果

input string

abcdefgh

你輸入的字串的長度為8

press any key to continue

20樓:匿名使用者

c語言中測試字串長度的函式是strlen()函式原型:

unsigned int strlen (char *s);

標頭檔案:

#include

引數說明:s為指定的字串;

功能說明:strlen()用來計算指定的字串s 的長度,不包括結束字元'\0';

返回值:返回字串s 的字元數;

注意:strlen() 函式計算的是字串的實際長度,遇到第乙個'\0'結束。

示例:#include

#include

int main()

//輸出結果:strlen(str)=6

21樓:烈焰呼嚎

int strlenown(const char* psz) /*const使得字元陣列不被修改*/

這裡面psz++是指標的位移操作,移動指向位置的,字串常量對於c語言來說就是一種陣列嘛

而括號外面的「 * 」是解引用符號,其實意思就是取指標當前位置的值,而不是它的位址。

22樓:匿名使用者

#include

int strlen(char* s)

int main()

23樓:東江湖の水怪

在標頭檔案位置寫

#include

然後在後面用b=strlen(a);

b是乙個int型的變數 a是字串或者字元陣列得首位址,也就是名字比如a[20],

24樓:啊黑夜傳說啊

就用了乙個strlen函式

#include

#include

int main()

25樓:匿名使用者

/*filename的長度為 : 21

press any key to continue*/#include

int strlen(char s)

int main()

26樓:匿名使用者

加標頭檔案 string.h **如下:

char str = "hello world!";

int len = strlen(str);

27樓:匿名使用者

#include

main() 這樣

28樓:匿名使用者

你的if中的條件寫的有問題,應改為

if(c>='a'&&c<='z'||c>='a'&&c<='z')

這樣說明只有你輸入的是字母時,a的值才執行++操作。而你的條件c&&('a'<='z'&&'a'<='z'))後半部分('a'<='z'&&'a'<='z'))返回值永遠都是真,因為a和a永遠都比z和z小呀。前半部分的c是你輸入的值,如果不是輸入了0對應的ascii碼值48,那也永遠是真,所以a條件總是成立,a總是++;結果當然就會不對了

29樓:匿名使用者

你的**出現問題的原因是scanf("%s",&a); ,a是乙個char型別的變數,系統為它分配了乙個位元組的記憶體空間,但是你卻輸入了乙個字串到以a的位址為首位址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回到呼叫main函式的作業系統後,系統會發現越界錯誤,所以在結果顯示出來後才出錯.

至於你說的輸入5個以下不會出錯,也許是偶然,也許跟你的編譯器有關.我用vs2005測試,只要輸入就會出錯。

如果你是只想求出輸入的字串的長度而不要求儲存輸入的字串,下面的**更好。你的標準輸入緩衝區有多大,那麼它就可以求出多長的字串的長度,不會有越界。

#include

int main()

c語言,計算字串長度,如何在c語言中計算字串長度

你的 出現問題的原因是scanf s a a是乙個char型別的變數,系統為它分配了乙個位元組的記憶體空間,但是你卻輸入了乙個字串到以a的位址為首位址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回...

c語言如何在字串前加上,C語言 如何在字串前 加上

1 在c語言中,而從左上到右下的反斜槓 需用轉義字元來表示。連續二個反斜槓的轉義字元,就表示乙個 反斜槓 字元 要在字串前加上 就要寫成 2 例如 char c1 c2 char s1 si k s2 c mydocs 123.txt 執行後就輸出 c1 c2 s1 si k s2 c mydocs...

C語言strtol函式用法,C語言中對字串進行操作的標準庫函式有哪些

用strtol怎麼將12進製數轉化成十進位制呢 printf d n strtol 12 null,12 這樣就將12進製的12化成10進製的整型數了,它是14。當然,12 可以是個字串,如 char a 123456 strtol a,null,12 括號 中的最後乙個形參就是a的進製數。至於把1...

C語言中有哪些字串處理函式,C語言字串處理的庫函式有哪些

你可以看一下頭檔案string.h和stdio.h裡面的相關函式宣告,好多好多。這裡就不一一列出了 比如下面列出的只是其中一部分 crtimp char cdecl strcpy char const char crtimp char cdecl strcat char const char crt...

c語言函式呼叫問題,C語言如何呼叫函式

int 和 void 的區別 int 返回值,void 不返回值。當需要返回值給主函式時,用int 當不需要返回值給主函式時,用void。至於括號裡的內容 int n是接收主函式的實參作為形參,就是函式中要用到這個形參。如果不需要從主函式中接收實參,那麼就用void。至於返回值 當函式返回值給主函式...