c語言strlen判斷字元長度的問題

2021-09-02 07:17:50 字數 3024 閱讀 8901

1樓:小八

不是6應該是5吧

因為你輸入的長度是4再加'\0'所以是5

2樓:匿名使用者

#include

#include

main()

試試這樣的,你要是一個字元一個字元的輸入,if (a[i]=='\n')就沒意義了。

3樓:匿名使用者

你定義的字元陣列char [4] 他的長度就是5+上你的scanf 輸入後有個\0就6了

scanf("%s",a);這樣

4樓:

c語言中,存放字串是以\0作為結束的。由於a陣列中沒有\0(即數值0),所以strlen測試a的長度,是從該陣列的起始地址向後掃描,直到在記憶體中遇到了0,認為字串結束,返回從陣列的起始地址到0之間的長度。

把程式中的:if (a[i]=='\n')i--;

改為:if (a[i]=='\n')

當你輸入的字元不超過3個時,一定正確。如果輸入了4個,\0就無處可放,還是出錯。

通常,把儲存字串的陣列說明得大些,如:char a[1024];

讀入字串時,通常用(1)scanf("%s",a); (2) gets(a);讀入,而不像你這樣用迴圈一個字元一個字元讀入。

c語言中判斷字串的長度不用strlen的問題

5樓:小學僧

0的和\0的as碼可不是一樣的哦。。

0 的是 30, \0的是0, 真正意義上的0。。。

6樓:匿名使用者

字串中的'0'的ascii碼是'\x30',不是'\0'

7樓:匿名使用者

數字0的ascii碼是0x30好不好,\0應該是0x00。

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

8樓:溜溜達達

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

9樓:

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

方法:自定義函式求長度

使用strlen()函式

使用sizeof()操作符

int cont_str(char *s)

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

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

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

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

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

10樓:1024程式設計師

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

11樓:匿名使用者

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

12樓:匿名使用者

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

#include

int main()

count++;

}printf("%d",count);

getchar();}

13樓:匿名使用者

用一個子函式就可以了

int sr(const char s)

14樓:泰和劉老師黃

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

15樓:花晨溪谷

直接用int()來算

16樓:啊黑夜傳說啊

就用了一個strlen函式

#include

#include

int main()

在c語言求字元長度的問題,strlen與sizeof怎麼計算出來的長度不是我們理解的那樣?

17樓:匿名使用者

sizeof(p)計算的是p變數的

bai大小du

zhi由於p是指標,p的大小就是4位元組dao,它不是求內容的長度,

18樓:匿名使用者

strlen獲取字串bai的長度。

每個中文du字元佔用zhi兩個位元組,所以dao中國是strlen是2+2=4;

英文字元儲存一版個位元組,故

權zg是1+1=2

sizeof用於求取佔用的空間。

但是注意,你求取的物件不是字串本身,而是變數本身。p和q兩個變數均為指標,指標在計算機中佔用4個位元組,所以最後兩個都是4.

19樓:匿名使用者

strlen的結果是bai

正確的,而dusizeof是在編譯的時候處理的,zhi這個dao時候編譯專器還不知道你這個指標指向的內容呢,因為你屬這個指標指向中國,是在執行的時候才處理的,好好想想,就是sizeof是在編譯的時候就已經算出結果了,不管你程式執行的時候指向**,它都是那個值。如果你寫sizeof(」中國」)那結果就是5了

以上純屬手打,望採納

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語言輸入字元判斷大小寫

c語言輸入字元判斷大小寫的源 如下 include int main char c printf 輸入一個字元 scanf c c if c a c z c a c z printf c 是大寫 c else printf c 不是小寫 c return 0 擴充套件資料 1 輸入的字元是小寫字母或...