1樓:亞吉那
你想知道它是什麼,很簡單的,用printf(strlen(a))把它的值輸出來,對比看看,就知道它是什麼了。
還有,不瞭解的函式,可以上msdn查詢,英文不會的話,可以通過查翻譯比對著看。
for(int i=0;i
2樓:或者是
你好的!
strlen(a) 這個是函式,取字串a 的長度假如長度是10,那麼等於for(int i=0;i<10;i++)
迴圈10次!望採納!
for(i=0,j=strlen(str);i
3樓:自我程式設計
for(i=0,j=strlen(str);i次迴圈1、先賦值i=0;j=strlen(str);//strlen獲取字串長度,第一個字元到結束符『\0'的字內符個數
2、再判斷容i 4、最後i++,j-- 再跳第2步 至於整個程式的意思,就是 第1個字元和最後1個字元對調位置第2個字元和倒數第2個對調。。。。。。。依次類推 c語言中strlen()怎麼用 4樓:風若遠去何人留 strlen為c語言庫函式,包含於string.h中,作用為計算一個字串(字元陣列)中元素的個數,即從陣列頭部計數,直到遇到字串結束符\0為止,計數結果不包括\0. 其宣告為: unsigned int strlen(char *s); 比如定義字串: char *p = "this is for testing"; 呼叫strlen(p); 返回的結果就是p中元素的個數,即19。 需要注意的是,strlen並不是絕對安全的,如果在傳入的字元陣列的合法範圍內,不存在結束符\0,那麼strlen函式會一直訪問下去,超出陣列範圍,即出現越界訪問。 所以使用strlen時,程式設計師必須確認引數字元陣列中包含\0值,否則會出現不可預知後果。 5樓:匿名使用者 sizeof與strlen的區別 1.sizeof操作符的結果型別是size_t,它在標頭檔案中typedef為unsigned int型別。 該型別保證能容納實現所建立的最大物件的位元組大小。 2.sizeof是算符,strlen是函式。 3.sizeof可以用型別做引數,strlen只能用char*做引數,且必須是以''\0''結尾的。 sizeof還可以用函式做引數,比如: short f(); printf("%d\n", sizeof(f())); 輸出的結果是sizeof(short),即2。 4.陣列做sizeof的引數不退化,傳遞給strlen就退化為指標了。 5.大部分編譯程式 在編譯的時候就把sizeof計算過了 是型別或是變數的長度這就是sizeof(x)可以用來定義陣列維數的原因 char str[20]="0123456789"; int a=strlen(str); //a=10; int b=sizeof(str); //而b=20; 6.strlen的結果要在執行的時候才能計算出來,時用來計算字串的長度,不是型別佔記憶體的大小。 7.sizeof後如果是型別必須加括弧,如果是變數名可以不加括弧。這是因為sizeof是個操作符不是個函式。 8.當適用了於一個結構型別時或變數, sizeof 返回實際的大小, 當適用一靜態地空間陣列, sizeof 歸還全部陣列的尺寸。 sizeof 操作符不能返回動態地被分派了的陣列或外部的陣列的尺寸 9.陣列作為引數傳給函式時傳的是指標而不是陣列,傳遞的是陣列的首地址, 如:fun(char [8]) fun(char ) 都等價於 fun(char *) 在c++裡引數傳遞陣列永遠都是傳遞指向陣列首元素的指標,編譯器不知道陣列的大小 如果想在函式內知道陣列的大小, 需要這樣做: 進入函式後用memcpy拷貝出來,長度由另一個形參傳進去 fun(unsiged char *p1, int len) 我們能常在用到 sizeof 和 strlen 的時候,通常是計算字串陣列的長度 看了上面的詳細解釋,發現兩者的使用還是有區別的,從這個例子可以看得很清楚: char str[20]="0123456789"; int a=strlen(str); //a=10; >>>> strlen 計算字串的長度,以結束符 0x00 為字串結束。 int b=sizeof(str); //而b=20; >>>> sizeof 計算的則是分配的陣列 str[20] 所佔的記憶體空間的大小,不受裡面儲存的內容改變。 上面是對靜態陣列處理的結果,如果是對指標,結果就不一樣了 char* ss = "0123456789"; sizeof(ss) 結果 4 ===》ss是指向字串常量的字元指標,sizeof 獲得的是一個指標的之所佔的空間,應該是 長整型的,所以是4 sizeof(*ss) 結果 1 ===》*ss是第一個字元 其實就是獲得了字串的第一位'0' 所佔的記憶體空間,是char類 型的,佔了 1 位 strlen(ss)= 10 >>>> 如果要獲得這個字串的長度,則一定要使用 strlen 6樓:個人資訊保密 strlen所作的僅僅是一個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃描,直到碰到第一個字串結束符'\0'為止,然後返回計數器值。 原型: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 格式:strlen (字元陣列名) 功能:計算字串s的(unsigned int型)長度,不包括'\0'在內 說明:返回s的長度,不包括結束符null。 因為字串是以字元'\0'結尾的,但是這個'\0'在我們的字串是隱藏的,我們看不到。實際上是有的.例如: char a[4]="abc";//這裡陣列的元素個數至少應該是4,否則此字串不叫字串了,只能叫字元陣列了。 strlen判斷一個字串的結束就是以其末尾的'\0'為界限。其實現**可以模擬為以下: int strlen(char *p) 所以他是不包括'\0'這個字元的。 7樓:天雲一號 strlen()函式的作用是統計給定字串的長度。 函式原型:unsigned int strlen(char *str); 功 能:統計字串str中字元的個數,不包括'\0' 返 回 值:返回字元個數 舉例:char *str1 = "abcdef"; // 定義一個字元指標 char str2 = "abcdef"; // 定義一個字元陣列 int len = strlen(str1); // 統計str1字元的個數,結果為6 int len = strlen(str2); // 統計str2字元的個數,結果為6 8樓:匿名使用者 這個問題問的好。strlen是以\0作為標誌結束的。s\n\016\0。-.-\016...\016是一個轉義後的字元 016是8進位制數 9樓:冰_vs_霰 strlen是測量字串長度的 char d=和char a="china"; char b=; 是等價的 是陣列的表示形式 而char c=;卻是字元陣列所以並不能得到結果 10樓:匿名使用者 strlen函式測量字串中字元個數,不包括結尾的'\0'字元,你的 char c沒有結尾的『\0』不是合法的字串,所以結果不對 11樓:滕秋昀 簡單的跟你說strlen是算長度的,比如,你定義int a[10]; 如果運算sizeof(a),會返回40.因為一個int型別佔了4個位元組的記憶體空間,10個就佔了40位元組 如果運算strlen(a),返回不一定是40,這要看你在a陣列裡面用了多少空間,如果用了4個位元組,就返回4,如果用滿就是返回40了 12樓: __cdecl strlen(const char *); 計算字串的實際長度(不含字串結束標誌『\0』),並將計算結果作為函式值返回。 13樓:匿名使用者 strlen是字串長度統計函式,他不包含字串結束符「\0」; 求字元陣列長度可以用 sizeof()如你上面的問題可以用: sizeof(c)/sizeof(c[0]) 14樓:文霞yi莉 他是一個統計字串長度的函式,給你舉個例子:希望能幫到您! #include #include void f(char a); int main() void f(char a) printf("\n");} 15樓:手機使用者 尾的'\0'。 strlen的工作原理是不斷向後看,直到一個'\0'字元。 因此第一個程式的執行結果是不可**的,取決於之前記憶體裡的殘留資料。 而第二個程式,陣列的剩餘項均被賦成0 16樓:匿名使用者 如下,已通過編譯驗證: #include #include char a[50]; int i,l; int main() }l=strlen(a); printf("\n"); for(i=l-1;i>=0;i--) printf("%c",a[i]); return 0;} 17樓:匿名使用者 strlen()只是統計字串的長度,統計到'\0'結束,但不包括'\0',這個與sizeof()不一樣。 對於用雙引號引起來的字串,系統預設最後一位字元為'\0',如你自己定義的: char a="china"; char b=; 另外,陣列初始化還可以是一個字元一個字元賦值,如: char c=; char d=; 但系統不會自動給你在最末位新增'\0』 所以在統計char c=時,統計到a時,系統還沒找到\0,所以會繼續統計,直到找到'\0'為止。所以就有你第三個值為11的情況,這個根據不同的執行環境而定。 18樓:匿名使用者 strlen是求字串長度的函式。 函式原型:unsigned int strlen(char *s); 引數:s是char型別的指標,指向要求長度的字串返回值:返回字串的長度,返回型別是無符號整型注意: strlen所作的僅僅是一個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃描,直到碰到第一個字串結束符'\0'為止,然後返回計數器值(長度不包含「\0」)。 例項:#include #include int main(void) 個人 社會 健康 公民和經濟教育,personal,social,health,citizenship and economic education 1 personal個人 個人,或者稱個體,一般指一個人或是一個群體中的特定的主體。2 social社會 社會,即是由人與人形成的關係總和。人類的生產... 作為接收引數,後面緊跟著的是a1作為傳入值。10 於int a1 a 而int a 10 所以a1 10。裡面的值好比一個索引,而,號後頁的值好比一下陣列,所以在 裡面的0就表示取值的索引是陣列的0位置.0 是後面第一個變數的位置代替。你用什麼除錯的 我用vs c 結果 a原來的值a1 10 a後來... 應該是morning吧,意思是上午 morning 早上,早晨 and的中文是什麼?and 英 nd 美 nd,n,nd conj.而且 和,與 於是,然後 因此 when he returned,she and simon had already gone.他回來時,她和西蒙已經走了。andcon...pshce是什麼意思的縮寫,uf0是什麼意思的縮寫
c中的0是什麼意思,C 中 0 表示什麼意思
m0rning中文是什麼意,And的中文是什麼?