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 輸入的字元是小寫字母或...