關於數字長度和字串長度的 C 測驗

發布 科技 2024-07-20
28個回答
  1. 匿名使用者2024-01-31

    方法:1)為每個元素分配初始值。例如:

    char a[12]=;

    以這種方式初始化字元陣列不能包含結束標誌,這是合法的。 但是,當將陣列整體輸出時,系統無法判斷字串是否結束,輸出結果會有問題。 因此,它通常被人為地新增“0”。

    上面的例子更合理地進行以下更改:

    char a[13]=;

    2)用字串常量初始化字元陣列:

    char a="good morning";或。

    char a=;

    這樣初始化字元陣列,可以不指定陣列長度,但實際陣列的長度比字串常量的長度多 1,因為系統會在末尾新增字串結束標誌 '0'如果指定了陣列的長度,如果字串常量的長度大於陣列的長度,則會發生錯誤,如果小於陣列的長度,系統將填充所有未賦值的元素為“0”。

  2. 匿名使用者2024-01-30

    A是對的。 b 不為 true,只允許分配所有元素的陣列。

    所以長度是 7,數字前導也是 7

  3. 匿名使用者2024-01-29

    char b=;

    它的長度應為 7 A,否則 b[i] i 可以大於 6??

    我應該從 0 到 6 並且在記憶體中是連續的。

  4. 匿名使用者2024-01-28

    a[2]=;當字元數正好等於元素數時,系統如何編譯?

  5. 匿名使用者2024-01-27

    正確答案:n+1

    解析]在 C 中,字串以“0”結尾,因此如果字串長度為 n。 也就是說,有 n 個字元,所以加上“0”意味著有 n+1 個字元。

  6. 匿名使用者2024-01-26

    C 問題:如果乙個字串的長度為 n,則儲存該字串的字元陣列的長度至少為

    char [3]=;n

  7. 匿名使用者2024-01-25

    n+1 如果使用小於此長度的儲存。 如果是初始賦值,它將報告錯誤,如果是使用 scanf 或 get 輸入的,則字串後面會有一些奇怪的字元,因為輸出時沒有 0。

  8. 匿名使用者2024-01-24

    n+1 字串以 0 結尾,因此如果字串長度為 n。

    也就是說,有 n 個字元,所以加上“0”意味著有 n+1 個字元。

  9. 匿名使用者2024-01-23

    n+1。

    字串都以 0 結尾,只有當遇到 0 時,他才會識別字串的結尾,所以它是 n,結束字元 0 總共有 n+1 個字元長度。

  10. 匿名使用者2024-01-22

    n+1,n 個字元,加上字串結尾標記“0”。

  11. 匿名使用者2024-01-21

    至少 n +1,後跟應為“0”

  12. 匿名使用者2024-01-20

    n+1,n 個字元加上末尾的 1 個'\0'

  13. 匿名使用者2024-01-19

    n+1,因為最後乙個 0 也佔 1。

  14. 匿名使用者2024-01-18

    請記住兩件事:

    設定字串樣式。

    每當使用雙引號(半形)時,它們都將以 0 結尾,這意味著將多乙個字元。

    2.如果未指定陣列的大小,則陣列的預設大小將是賦值編號右側的初始化長度。

    那麼你的問題的答案如下:

    字串"abcd"長度為 4,因為字串長度是指字串中的有效字元數,並且不包含 C 樣式的結束字元 0 和字串陣列 a="abcd"長度為 5,因為這是陣列的長度,也就是它占用的儲存空間,當然它必須包含乙個 0 終止符(這也占用儲存空間)。 a[10]="abcd"為 10,因為您正在顯示指定字元陣列的長度。 當然占用的記憶體是10,它的儲存空間是連續的,也就是說在10個字元空間中,前面是a、b、c、d和結束字元0,後面都是0(初始化),總共有5個0,加上前面的ABCD和結束字元0,總共有10個, 它們的儲存是連續的。

    a=,你沒有用雙引號定義它,所以它不是乙個 C 樣式的字串,它只是乙個字元陣列。 而且你沒有指定大小,那麼它的大小就等於你初始化的長度,這裡是4,sizeof也等於4,沒有結束字元0。 後乙個問題重複,沒有解釋!

  15. 匿名使用者2024-01-17

    #include “

    然後你可以使用 int length=strlen(str)。

    str 是你的字串。

  16. 匿名使用者2024-01-16

    您可以使用 strlen() 函式,但不同的編譯器可能會產生相同的結果。

  17. 匿名使用者2024-01-15

    你好。 它應該被理解為這樣理解。

    首先,在 C 的情況下,字串實現通常使用陣列。 chars"hello";

    hello 中有五個字元。 分別。 h

    ELLO 在 C 語言中有一條規則,即包含字串的陣列應使用字串終止符終止。

    即“0”

    所以上面定義中陣列 s 的長度是字元總數的 5

    新增結束字元“0”

    那是 6 歲。

    字串的長度為 5

    但是陣列 s 的長度為 6

    至於流行陣列的長度,應該是指數組中可以儲存的元素數。

    例如,char

    s[100]

    hello";

    雖然字串 s 的長度是 5

    但陣列長度為 100

    希望你理解。

  18. 匿名使用者2024-01-14

    字串的定義:以值 0 結尾的字元數,字串的長度是陣列中值 0 之前的字元數。

    例如:字串"1234"陣列中的具體儲存如下所示:'1','2','3','4',0,由於 0 前面有 4 個字元,因此此字串的長度為 4,但它必須占用 5 個空格才能儲存。

    所謂轉義符號是這樣的:C語言需要用一些符號來編寫程式,比如:printf("%d",x);這裡用雙引號表示"%d"這個字串,但如果我們需要輸出雙引號怎麼辦?

    就用它吧"而不是寫作",例如,如果我們想輸出 ["abc"],你可以這樣寫:printf("[\"abc\"]");同理,如果我們想輸出 % 符號,也應該在字串中用 2 % 替換它,比如輸出 [100%] 可以寫成 x=100; printf("【%d%%】",x);

    還有一些字元我們不能用鍵盤輸入,比如回車鍵,它是用替換的字串寫的,而鍵被替換成,我們只知道字元ASCII碼是43,八進位43可以寫成43,我們知道十六進製ASCII碼11是用x11寫的

    這樣”。"1\432\x11\"“儲存時:'\"','1','\43','','2','\x11','\"',0 字串長度為 7,最外邊的一對雙引號不屬於儲存的字串,而是 C 語言標識字串的保留符號。

  19. 匿名使用者2024-01-13

    字串的長度以位元組為單位。

    字串長度是根據字串計算得出的,並以字串終止符結尾,該終止符不計入字串長度。

    一對單引號包含乙個長度為 1 位元組的“字元常量”。

    以反斜槓開頭的字元稱為音譯轉義字元。

    指示 1 個雙引號字元。

    1 代表字元 1

    43 means 是八進位數,043 是換行符(換行符或換行符)的 ASCII 字元,x11 means 是十六進製數的 ASCII 字元0x11

    指示乙個單引號字元。

    字串終止符是'\0'

    什麼是“Escape”角色,為什麼要使用Escape角色等等,需要看書才能理解。

  20. 匿名使用者2024-01-12

    第乙個問題:長度的概念不是位元,長度是以位元組為單位的,乙個位元組是八位。

    第二個問題:因為是轉義字,所以需要檢查轉義字才清楚,看看書上就知道了,書上有。

  21. 匿名使用者2024-01-11

    char s[10]="abc";實際占用為 10 個位元組,strlen 計算長度為 3,這是正確的。

    char s="abc";實際占用為 4 個位元組,strlen 計算長度為 3,這是正確的。

    char s[10]=;實際占用為 10 個位元組,strlen 計算長度為 3,這是正確的。

    char s=;實際占用是 3 個位元組,strlen 計算長度是(隨機值),而不是 3,因為這只能說明 s 是包含三個元素的字元陣列,而第四個元素已經是非法空間了。

    char s[3]="abc";編譯不起作用,因為"abc"它需要 4 個位元組,而 s[3] 只有 3 個位元組的空間。

    char s[3]=;實際占用為 3 個位元組,strlen 計算長度為 (隨機值)。

  22. 匿名使用者2024-01-10

    有一些錯誤。

    s[3]="abc";這個是編不出來的,越過邊界,就有乙個0沒有放在地上。

    另外,我不知道你用這個函式做什麼,但如果你只是傳入 s 並使用 sizeof,結果一定是指標長度,並且在 32 位系統中的值是 4,所有這些,無論你定義多長和分配多少,如果你使用 strlen, 這和你的結果是一樣的。

  23. 匿名使用者2024-01-09

    以下是我的想法,僅供房東參考:

    遍歷陣列, 統計'',從而為指向字串的指標陣列分配記憶體。

    然後遍歷陣列,計算當前子字串的字元數,然後分配記憶體,複製。

  24. 匿名使用者2024-01-08

    正確答案:n+1

    解析]在 C 中,字串以“0”結尾,因此如果字串長度為 n。 也就是說,有 n 個字元,所以加上“0”意味著有 n+1 個字元。

  25. 匿名使用者2024-01-07

    n+1 字串以 0 結尾,因此如果字串長度為 n。

    也就是說,有 n 個字元,所以加上“0”意味著有 n+1 個字元。

  26. 匿名使用者2024-01-06

    n+1。

    字串都以 0 結尾,只有當遇到 0 時,他才會識別字串的結尾,所以它是 n,結束字元 0 總共有 n+1 個字元長度。

  27. 匿名使用者2024-01-05

    n+1,n 個字元,加上字串結尾標記“0”。

  28. 匿名使用者2024-01-04

    他們談論的是一般情況,有一本書叫C++入門,你可以看看。

相關回答
7個回答2024-07-20

嚴格來說,這兩者都不是字串,因為沒有 0 終止符。 >>>More

24個回答2024-07-20

你可以使用 strlen 函式來獲取 C++ 中字元陣列的長度,例如計算字元陣列 a 長度的語句是 i=strlen(a)。 >>>More

16個回答2024-07-20

字元陣列的賦值有兩種型別:單字元賦值和字串賦值。 >>>More

11個回答2024-07-20

必須明確的是,lz 引用的字串陣列是非常非規範的。 所謂"xx 陣列"就是這樣"以 xx 為元素的陣列",以便理解 LZ 的字串陣列的單詞"以字串為元素的陣列"應該理解的是,在C語言中只有儲存字元的變數,而沒有儲存字串的變數,即使儲存了,也只能儲存字串的第乙個位址,這種陣列稱為指標陣列,而不是字串陣列。 >>>More

13個回答2024-07-20

string stra="abcdef";

string strb=""; >>>More