sizeof運算子與求字串長度函式strlen的區別
sizeof運算子與求字串長度函式strlen的區別:
sizeof可以用於資料型別,也可以用於任意型別的變數;
strlen只能用於字串變數的長度,
用sizeod求字串長度時,是指整個字串陣列的尺寸;而strlen求得的字串的字元長度不包括最後的字串結束符。
接下來用程式碼演示:
1 #include<stdio.h>
2 #include<string.h>
3
4 int main()
5 {
6 char str[10] = "beautiful";
7 int a = strlen(str);
8 // printf("strlen:%d\n",a);
9 printf("strlen:%d\n",(int)strlen(str));
10 printf("sizeof:%d\n",(int)sizeof(str));
11 }
結果:
strlen:9
sizeof:10
由此可見,sizeof與strlen在求解字串長度上最大的差異。
相關推薦
sizeof運算子與求字串長度函式strlen的區別
sizeof運算子與求字串長度函式strlen的區別: sizeof可以用於資料型別,也可以用於任意型別的變數; strlen只能用於字串變數的長度, 用sizeod求字串長度時,是指整個字串
PHP內建的字串長度函式strlen mb_strlen
採用mb_strlen函式可以較好地解決這個問題。mb_strlen的用法和 strlen類似,只不過它有第二個可選引數用於指定字元編碼。例如得到UTF-8的字串$str長度,可以用 mb_strlen($str,'UTF-8')。如果省略第二個引數,則會使用PHP的內部編碼。內部編碼可以通過 mb_int
各字串長度函式的區別和比較
程式設計過程中,我們需要用到函式用來處理我們的字串長度。但是,隨著計算機位數的不斷擴充套件,之前的很多函式對於計算字串長度的功能也已經適用範圍有限。所以,出現了很多的新的函式用來應對不同使用環境下的字串處理
字元與字串中的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)
如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char * str2 = "ab\
字元與字串中的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)
如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char *
如何求C語言字串長度(strlen函式和sizeof關鍵字)
原文出處:http://blog.csdn.net/kstrwind/article/details/8036555 ------------------------------------------------------------------------------
C語言中求字串長度的函式my_strlen()的幾種實現方法
C語言中求字串長度的函式的幾種實現方法 1.最常用的方法是建立一個計數器,判斷是否遇到‘\0’,不是’\0’指標就往後加一。 int my_strlen(const char *str) { assert(str != NULL);//此句判段str是否為空指標(事實上這條語
C語言中strlen求字串長度,求字元陣列長度(空字元,數字0,字元0,陣列部分初始化)
如下字元陣列or字串,用strlen函式求長度各是多少? char * p = "abc" 與 char a[] = "abc"兩種形式並不同,這在我另一篇博文中有提到。 char * str1 = "abc";
深入理解字串處理函式 strlen() strcpy() strcat() strcmp()
在linux C 程式設計中,我們經常遇到字串的處理,最多的就是字串的長度、拷貝字串、比較字串等;當然現在的C庫中為我們提供了很多字串處理函式。熟練的運用這些函式,可以減少程式設計工作量,這裡介紹幾個常用的字串函式,並編寫一些程式,如果沒有這些庫函式,我們將如何實現其功能; 1.求字串長度函式
求字串長度
雖然函式庫裡已經有這樣的一個函數了,但還是可以自己編寫一下 /*計算一個字串的長度*/ #include <stdlib.h> size_t strlen( char * string )//size_t是標準C庫中定義的,即為unsigned int { int le
C++ Pirmer : 第十四章 : 過載運算子與型別轉換之函式呼叫運算子與標準庫的定義的函式物件
函式呼叫運算子 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所謂的函式呼叫就是一個類過載了函式呼叫符,類在使用過載函式呼叫符時接受相應引數。這一過程就像是使用
oracle獲取字串長度函式length()和hengthb()
oracle獲取字串長度函式length()和hengthb()lengthb(string)計算string所佔的位元組長度:返回字串的長度,單位是位元組length(string)計算string所佔的字元長度:返回字串的長度,單位是字元 對於單位元組字元,LENGTHB和LENGTH是一樣的.如可以用l
ABAP自定義擷取字串長度函式
SAP 中strlen()只能計算字串的個數,不能計算含有中文字串的長度,如字串“SAP大波霸”,strlen('SAP大波霸') = 6,其實真實長度為3+3*2 = 9。 我們可以通過cl_abap_list_utilities=>dynamic_output_
php取得字串長度函式
1、strlen() 函式返回字串的長度(php預設支援strlen函式) 例: strlen("中國人!");//6 strlen得到的值是漢字個數的2倍 strlen("www.php.com!"); //10 2、mb_strlen()函式需要開啟一個外掛 將php_
PHP獲取字串長度之strlen和mb_strlen的區別
在PHP中,strlen與mb_strlen是求字串長度的函式,但是對於一些初學者來說,如果不看手冊,也許不太清楚其中的區別。 下面通過例子,講解這兩者之間的區別。 先看例子: <?php //測試時檔案的編碼方式要是UTF8 $str='中文a字1符'; e
linux C --深入理解字串處理函式 strlen() strcpy() strcat() strcmp()
在linux C 程式設計中,我們經常遇到字串的處理,最多的就是字串的長度、拷貝字串、比較字串等;當然現在的C庫中為我們提供了很多字串處理函式。熟練的運用這些函式,可以減少程式設計工作量,這裡介紹幾個常用的字串函式,並編寫一些程式,如果沒有這些庫函式,我們將如何實
js---null與空字串""的區別
1、型別 null表示的是一個物件的值,而並不是一個字串。例如宣告一個物件的引用,String a = null ; ""表示的是一個空字串,也就是說它的長度為0。例如宣告一個字串String str = "" ; 2、記憶體分配 String str = nu
正則驗證,match()與test()函式的區別?
test是RegExp的方法,引數是字串,返回值是boolean型別。 match是String的方法,引數是正則表示式,返回值是陣列。 案例: 1 //判斷日期型別是否為YYYY-MM-DD格式的型別 2 function IsDate(){ 3 va
行內函數與巨集、普通函式的區別
行內函數是程式碼被插入到呼叫者程式碼處的函式。如同 #define 巨集,行內函數通過避免被呼叫的開銷來提高執行效率,尤其是它能夠通過呼叫(“過程化整合”)被編譯器優化。 行內函數和巨集很類似,而區別在於,巨集是由前處理器對巨集進行替代,而行內函數是通過編譯器控制來實現的。而且行內函數是真正的函式,只
最小二乘與交叉熵代價函式的區別(作用及公式推導)
交叉熵代價函式(Cross-entropy cost function)是用來衡量人工神經網路(ANN)的預測值與實際值的一種方式。與二次代價函式相比,它能更有效地促進ANN的訓練。在介紹交叉熵代價函式之前,本文先簡要介紹二次代價函式,以及其存在的不足。 1. 二次代