C語言字串長度函式?

時間 2021-06-19 13:00:28

1樓:C語言答疑課堂

題主的問題有兩個地方需要回答:

1.//為什麼寫&c[100]會報錯?

你看啊,陣列c定義的時候指定大小是100,這可不是意味著從1~100,而是0~99,C語言數字下標是從0開始的。對於我們來說,是不是有點不習慣?c[100]意味著第101個元素,這個元素並不在陣列裡,鬼才知道你是個什麼東西。

所以編譯器為了防止出錯,不會讓你通過編譯的。

2.if (a[lengh++] != EOF);

好乙個if語句。你這樣寫的話,if語句執行1次,length變成1,然後就執行return語句了。想讓a[lengh++] != EOF執行多次?用while,迴圈它!

2樓:

strlengh 裡要用 while 而不是 if 。

&c[100] 表示陣列元素 c[100] 的位址,然而 c[100] 並不存在。c 表示陣列首元素 c[0] 的位址,即 &c[0] 。我覺得你需要了解一下字串是如何儲存在陣列中的。

c語言怎麼從字串中提取自己想要的字元?

如果僅限英文本母數字等鍵盤上打的出的符號,那問題在於 你想要 的字元是啥,怎麼定義想要 滿足什麼條件 條件複雜可能還要用到正規表示式,甚至自己寫parser 坑是無窮無盡的,一切取決於你想要啥 如果包含中文等等世界各國語言的字元,還需要去學習 字元編碼 utf 8 gbk utf 16le utf ...

C語言中,字串常量為什麼只能給字元陣列初始化,而不能通過指標賦值

程佳 陣列是指標常量,常量不能賦值。字串在c語言裡不是原生資料型別,就是乙個內容非0結尾為0的位元組陣列。所以對字串的操作要使用string.h裡那些庫函式。 神念的經 想啥呢,一旦定義成了靜態陣列,首元素位址就是定死的。想改位址?門都沒有。指標賦值?那是改指向的位址,不是改指向的內容。strcpy...

C語言,用陣列定義乙個字串,那這個字串是怎麼儲存在這個陣列中的呢?

the gc 對於scanf的 s的解釋如下 Matches a sequence of non white space characters the nextpointer must be a pointer to the initial element of acharacter array t...