字串的陣列表示

2021-07-23 23:33:27 字數 1341 閱讀 1800

一:求字串的長度

標頭檔案:#include

strlen()函式用來計算字串的長度,其原型為:

unsigned int strlen (char *s);

【引數說明】s為指定的字串。

strlen()用來計算指定的字串s 的長度,不包括結束字元"\0"。

【返回值】返回字串s 的字元數。

注意一下字元陣列,例如

char str[100] = "";

定義了乙個大小為100的字元陣列,但是僅有開始的11個字元被初始化了,剩下的都是'\0',所以 sizeof(str) 等於100,strlen(str) 等於11。

但是如果字元的個數等於字元陣列的大小,那麼strlen()的返回值就無法確定了,例如

char a[10]=;(c++編譯系統會對陣列空餘的元素以及字串常量後一位自動賦值\0,因此,人們為了處理方法一致,不會採用上述賦值方法,而是在有效字元的後面也人為的加上\0)

strlen(str)的返回值將是不確定的。因為str的結尾不是0,strlen()會繼續向後檢索,直到遇到'\0',而這些區域的內容是不確定的。

注意:strlen() 函式計算的是字串的實際長度,遇到第乙個'\0'結束。如果你只定義沒有給它賦初值,這個結果是不定的,它會從首位址一直找下去,直到遇到'\0'停止。而sizeof返回的是變數宣告後所佔的記憶體數,不是實際長度,此外sizeof不是函式,僅僅是乙個操作符,strlen()是函式

#include#includeusing namespace std;

int main()

; //等價char str3[5];str3[0]='a';str3[1]='b';str3[2]='c';str3[3]='d';str3[4]='e';

cout<二:定義字串的方法

char a="i am a student"

string a="i am a student"

char *p="i am a student"

注意:系統會自動在字串結尾加上『\0』,這裡說的是字串、

這裡引申出第三個問題

三:char a="i am a student"和char *p="i am a student"的區別

待續。。。。。

字串 表示數值的字串

題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...

表示數值的字串(字串)

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...

字串 表示數值的字串

此題出自牛客網的劍指offer專題 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路一 直接正規表示式擼起 實現 如下 public cl...