c語言字元數組長度
㈠ c語言計算字元數組的長度
1、在c語言中,可以通過庫函數strlen來計算字元串的長度,也可以通過循環計數來求取字元串長度。
函數原型:unsigned
int
strlen(char
*str);
功
能:統計字元串str中字元的個數,不包含'\0'
返
回
值:返回字元個數
2、用strlen函數實現:
char str[20];
int len; // 保存數組的長度
scanf("%s", str);
len = strlen(str); // 計算字元數組str的長度
註:需將頭文件#include
添加進源文件中。3、用循環來實現:
char str[20];
int len=0; // 保存數組的長度
scanf("%s", str);
while(str[len] != '\0') // 未檢測到結束字元
{
len++; // 統計字元數組str的長度
}
㈡ C語言問題,關於字元數組的長度問題
哎。strlen()是在string.h裡面的,getch()是在conio.h裡面的,不過,我用的是CFree,至於其它的編譯器,我就不知道了。
至於你的問題,當你仔細看看他們的結果,你就會有結論了。
很明顯,strlen(q)的值是一樣的,不同的是p的字元長度
而它們的區別,就在於,它們一個有數組的長度,另一個沒有。
數組q,它的長度是10,所以一開始就會分配10個大小為sizeof(char)的空間,然後,就把a,b,c分別放進從分配的第一個,第二個,第三個空間裡面,然後,剩下的變為0()也就是'\0'。
所以用strlen(q)的時候,就是3
而沒有長度的p,它預設了長度,所以系統就會按你給的元素個數分配,這里p有3個元素,所以就分配3個大小為sizeof(char)的空間,當你用strlen(p)的時候,因為strlen()是以字元串終結符'\0'來判定字元串長度的,所以呢,strlen(p)是一個不確定值。
如果你還沒能理解為什麼是一個不確定值,那就繼續看下去。
在C中,是不會檢測是否越界的,你可以順著數組一直訪問下去,比如你定義一個 int a[10]
你可以訪問a[12],a[13](當然也可以訪問a[-1],a[-100]),只是這些值是不確定的。它訪問的方式,是從數組的起始地址開始,按照數組下標值,進行相對位移(它們所跳過的長度是數組類型的長度,比如上面,是跳過sizeof(int)的長度)。
而strlen()就是從它首地址開始,一個個開始檢測,是否達到'\0『,然後返回長度值。
當你調用strlen()的時候,如果沒有終止符'\0』,它就會越界檢查,直到找到'\0『。
就像 char a[3]={'a','b','c'},它也是一個不確定值。
明白了沒,不懂繼續追問。
寫這么多,真的好累。。。
㈢ c語言字元串的長度怎麼看
C語言的字元串是由字元數組形式保存的,並約定'\0'(ascii碼值為0)作為字元串結束符。
其長度為從字元串開始,到'\0'結束,所有字元的個數,不包括'\0'本身。
要獲得字元串長度,有兩種方法可以使用:
1
使用庫函數strlen()。
strlen聲明在string.h中,原型為
int
strlen(char
*str);
功能為求str的長度,並返回。
2
根據定義求長度。
對於字元串str,
可以用如下代碼求長度:
int
len;
for(len
=
0;
;
len
++)
if(str[len]
==
'\0')break;
當str[len]為0時,退出循環,退出後的len值就是str的長度。
㈣ C語言中關於字元數組的長度問題
r[]={'a','b','c'};
這是個字元數組,系統只為它分配了3個位元組的空間,但是strlen只有遇到'\0'才會返回回,於是答它會向後繼續進行,直到有'\0',這其實是越界(或許沒有,可能訪問的是q[10])了.
你可以這樣
printf("%s\n", r);來查看下列印的信息。
在我的上面(TC)是
3 3 3 9
㈤ C語言編程中,輸入一個字元串數組,如何得出該數組的長度
使用C語言函數strlen()
函數原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型為size_t strlen( const char *string );,其中size_t實際上是unsigned int,在VC6.0中可以看到這版樣的代碼:typedef unsigned int size_t;。
頭文件:權string.h
功能:計算字元串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符NULL。
程序舉例:
#include <string.h>
#include<stdio.h>
int main(void)
{
char s[]="Golden Global View";
printf("%s has %d chars",s,strlen(s));
return 0;
}
㈥ c語言中一個字元串數組的最大長度是多少
只要內存足夠,數組不限制的。字元串變數的話,各語言中一般都是1G位元組(2的30次方-1)的限制。
㈦ C語言 字元串長度
這個字元串長度為10個字元。
你可以用strlen("ab'1'\\\12803")來求這個字元串的長專度。
也可以用sizeof("ab'1'\\\12803")來求,但是這屬個求出的結果是多了一個字元串結束符\0。
你可以試著輸出這個字元串看看是不是10個字元。
實際上,這10個字元分別為:
1、a
2、b
3、'
4、1
5、'
6、\\(\\表示:前一個表示這是一個轉義字元,後一個才是字元串中的真實字元)
7、\12(同上,\表示這是一個轉義字元,其後面的1~3個數字位是一個八進制數,在這里,第3個數字為8,所以它不是這個八進制數的一部分,即這個八進制數應該是12,轉換為10進制數即為10,對應的ASCII碼為一個換行符)
8、8
9、0
10、3
註:\用來說明一個轉義字元,如\\表示反斜杠字元「\」,\ddd表示1~3位八進制數所代表的字元(ASCII碼),\xhh表示1~2位十六進制數所代表的字元。
㈧ c語言 計算字元串長度
C語言的抄字元串是由字元數組形式襲保存的,並約定'