c語言試題若字串的長度為n則儲存它的字

2021-04-18 11:47:26 字數 6419 閱讀 7312

1樓:匿名使用者

【正確答案】n+1

【解析】在c語言中,字串是以『\0』結尾的, 所以如果字串長度為n。也就是有n個字元,那麼加上『\0』就是有 n+1個字元。

望採納~ 有問題再問哦~ o(∩_∩)o

2樓:匿名使用者

n+1字串是以\0結尾的, 所以如果字串長度為n。

也就是有n個字元,那麼加上\0就是有 n+1個字元。

3樓:靚仔

n+1個

字串都是以\0結束的,只有遇到\0他才識別這個字串結束,所以就是n個,在加結束字元\0總共就是n+1個字元長度

4樓:匿名使用者

n+1,n個字元,加一個字串結束標記「\0」

5樓:xz巨集定義

他們說的是一般情況,有一本書叫c++ primer,可以看看

c語言試題: 若一個字串的長度為n,則儲存它的字元陣列的長度至少為_____。

6樓:匿名使用者

【正確答案】n+1

【解析】在c語言中,字串是以『\0』結尾的, 所以如果字串長度為n。也就是有n個字元,那麼加上『\0』就是有 n+1個字元。

望採納~ 有問題再問哦~ o(∩_∩)o

7樓:xz巨集定義

c語言試題: 若一個字串的長度為n,則儲存它的字元陣列的長度至少為_____。

char [3]=;n

8樓:匿名使用者

n+1 如果用少於這個長度的來儲存。。如果是初始化賦值的話會報錯,,如果是用scanf或gets輸入,再輸出的時候由於沒有\0 字串後面會有一些奇奇怪怪的字元

9樓:匿名使用者

n+1字串是以\0結尾的, 所以如果字串長度為n。

也就是有n個字元,那麼加上\0就是有 n+1個字元。

10樓:靚仔

n+1個

字串都是以\0結束的,只有遇到\0他才識別這個字串結束,所以就是n個,在加結束字元\0總共就是n+1個字元長度

11樓:匿名使用者

n+1,n個字元,加一個字串結束標記「\0」

12樓:匿名使用者

至少為 n +1,應為後邊還有一個 『/0『

13樓:匿名使用者

n+1,n個字元最後加一個'\0'

14樓:匿名使用者

n+1 ,還有一個結束符。

15樓:t上1官6雲1天

n+1因為最後的/0也佔一個

假定一個字串的長度為n,則定義儲存該字串的字元陣列的長度至少為

16樓:

xiongwei630003 兄弟講錯了!

正確答案是:n+1

原因:字串是以'\0'結尾的, 所以如果字串長度為n,也就是有n個字元,那麼加上'\0'就是有 n+1 個字元。故定義陣列大小時候至少需要 n+1 位元組大小的記憶體空間。

即:char string[n+1];

17樓:匿名使用者

char a[n];

包含的字元下標就是a[0]a[1]..a[n-1]一共n個字元,後面系統給你的字串加一個『\0』

18樓:完顏雪市子

【正確答案】n+1

【解析】在c語言中,字串是以『\0』結尾的,所以如果字串長度為n。也就是有n個字元,那麼加上『\0』就是有n+1個字元。

望採納~

有問題再問哦~

o(∩_∩)o

c語言 計算字串長度

19樓:

作者你好!

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

字串存放在陣列中,因此,一個字元陣列可以存放幾個串,單字串函式只認字串結束標誌'\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

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

20樓:

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

方法:自定義函式求長度

使用strlen()函式

使用sizeof()操作符

int cont_str(char *s)

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

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

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

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

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

21樓:溜溜達達

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'在內的長度。

22樓:冰是沉默的水

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

如:char str[20]=;

strlen(str);等於 6

sizeof(str); 等於20

-物聯網校企聯盟技術部

23樓:樂跑小子

#include

#include

void main()

執行結果

input string

abcdefgh

你輸入的字串的長度為8

press any key to continue

24樓:匿名使用者

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

unsigned int strlen (char *s);

標頭檔案:

#include

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

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

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

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

示例:#include

#include

int main()

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

25樓:烈焰呼嚎

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

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

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

26樓:匿名使用者

#include

int strlen(char* s)

int main()

27樓:東江湖の水怪

在標頭檔案位置寫

#include

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

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

28樓:啊黑夜傳說啊

就用了一個strlen函式

#include

#include

int main()

29樓:匿名使用者

/*filename的長度為 : 21

press any key to continue*/#include

int strlen(char s)

int main()

30樓:匿名使用者

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

char str = "hello world!";

int len = strlen(str);

31樓:匿名使用者

#include

main() 這樣

32樓:匿名使用者

你的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總是++;結果當然就會不對了

33樓:匿名使用者

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

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

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

#include

int main()

34樓:

錯誤有兩個!

1.char型的字元變數a只代表一個字元,不能代表一個字串。

2.用scanf輸入字串時,出了個控制符要用%s外,後面的應是個地址。若a是個字元陣列,應該用a,而不是&a。況且用scanf輸入時不能輸入空格。

你可以這樣編:

#include

#include

void main()

visual c++編譯通過,希望能幫助你

35樓:匿名使用者

if(c&&('a'<='z'&&'a'<='z'))這個語句恆為真了

修改後的程式

#include

void main(void)

}printf("您輸入了%d個字元",a);

}我也是初學者lz共勉

36樓:匿名使用者

strlen(); 這個是一個函式,

sizeof(); 這個不是函式

strlen(); //返回實際長度

sizeof(); //返回整個字串的長度比如:char str[20]="hello";

cout<將輸出 5 不算最後的'\0'

cout<

37樓:水裡風

#include

using namespace std;

int main()

{string a,b;

int i=0,j=0;

getline(cin,a);

getline(cin,b);

while(a[i]!='\0')i++;

while(b[j]!='\0')j++;

if(i

c語言字串長度如何數,C語言字串長度如何數?

1 首先開啟vs2014,新建一個專案。2 然後我們根據圖示 新建一個main函式。3 然後我們根據圖示 新增標頭檔案。4 然後我們根據圖示 新增main函式。5 然後我們根據圖示 定義int變數len。6 然後我們根據圖示 定義char型別變數str。7 然後我們根據圖示 使用scanf給str賦...

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

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

c語言字串常量的問題,C語言字串常量的一個問題。

字串bai遇到 0表示結束 第一個字du符串就相zhi當於dao abc123 那版麼長度為6 第二個字串就相當於 abc 那麼長度為3但是實際操作權發現並非如此,如下程式 include memcpy c1,abc123 01de n 0x20 printf s n c1 char c2 0x20...