strlen
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符'\0'為止,然後返回計數器值(長度不包含'\0')。
指實際字符串或字符數組的實際長度(不是所占空間的字節數)。
函數原型
extern unsigned int strlen(char *s)
意思是,他從指針指向的某個地址開始掃描,並讀取字符,一直讀到'\0'為止,不包括'\0'
strlen用於字符數組或者指針
字符型數組
char B[]={‘a’,’e’,’s’,’r’,’q’};
末位沒有'\0',表示數組元素都是字符型
字符數組
char C[]={"abcdef"};
數組元素也是字符型,但是末位有'\0'
char D[]={'a','c','q','f','w'};
i=strlen(D); //這樣,由於沒指定D的內存分配大小,用strlen求其長度會造成錯誤。
數組或字符串的長度
sizeof()---求所占的字節數
1、對於整型字符型數組
2、對於整型或字符型指針
strlen()---字符數組或字符串所占的字節數
1、針對字符數組
2、針對字符指針
sizeof()返回的是變量聲明後所占的內存數,不是實際長度,此外sizeof不是函數,僅僅是一個操作符,strlen是函數。
實用模板時,需要對臨時參數進行初始化,例如T temp=T(0)。
cin.get(input,Arsize)將一直讀取輸入,直到到達行尾或讀取了ArSize-1個字符為止。
自動變量是棧,動態存儲或自由存儲是堆