思路:因為字符串都是以'\0'作為結束標志,所以可以從字符串的第一個位置開始遍歷,直到出現'\0'停止遍歷,并每次下標后移,字符串的長度加1,最后返回字符串長度。

創新互聯建站長期為近1000家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為崇明企業提供專業的網站建設、成都網站設計,崇明網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。
參考代碼:
#include?"stdio.h"?
int?strlen(char?*s){//求字符串長度函數?
int?n;
for(n=0;s[n]!='\0';n++);
return?n;
}?
int?main()?{
char?a[100];
gets(a);?
printf("%d\n",strlen(a));
return?0;
}
/*
運行結果:
wqerqew
7?
*/
C語言中字符串有一個結束符'\0',一個正常的字符串的最后一個字符都是'\0',在你定義一個常量字符串時就自動幫你加上去了,比如"abc"其實有4個字符{'a', 'b', 'c', '\0'},最后一個'\0'表示字符串到這就結束了,以防止內存讀取越界,同時也以此來計算字符串長度,而不是再傳一個int參數表示字符串的長度。因此a在內存中長度為6,但由于最后一個字符'\0'只是結束符,所有一般說長度時會忽略掉最后一個字符
string.h中提供了strlen函數可以方便地計算字符串的長度,不過注意strlen返回值的類型為size_t,x64下定義為uint64_t,x86下為uint32_t,所以記得進行類型轉換
第一種:調用C庫函數strlen(頭文件string.h)
#include stdio.h
#include string.h
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";
printf("%d\r\n", (int)strlen(a));
return 0;
}
第二種:手動計算長度
#include stdio.h
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";
char* p = a;
while ('\0' != *p)
{
p++;
}
printf("%d\r\n", (int)(p - a));
return 0;
}
#includeiostream
using namespace std;
int main()
{
int character(char *a);
char a[20];
int length;
cout"請輸入一個字符串:"endl;
cina;
length=character(a);
cout"字符串長度為:"lengthendl;
return 0;
}
擴展資料:
return用法:
在C++的關鍵字,它提供了終止函數執行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值.
1、C
在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的經典巨著The C programming Language 2e(《C程序設計語言第二版》)用的就是main()。不過在最新的C99標準中,只有以下兩種定義方式是正確的:
int main(void)
int main(int argc,char*argv[])
當然,我也可以做一點小小的改動。例如:char*argv[]可以寫成char**argv;argv和argc可以改成別的變量名(如intval和charval),不過一定要符合變量的命名規則。
如果不需要從命令行中獲取參數,請用int main(void);否則請用int main(int argc,char*argv[])。
main函數的返回值類型必須是int,這樣返回值才能傳遞給程序的激活者(如操作系統)。
如果main函數的最后沒有寫return語句的話,C99規定編譯器要自動在生成的目標文件中(如exe文件)加入return 0;,表示程序正常退出。不過,我還是建議你最好在main函數的最后加上return語句,雖然沒有這個必要,但這是一個好的習慣。
注意,vc6不會在目標文件中加入return 0;,大概是因為vc6是98年的產品,所以才不支持這個特性。現在明白我為什么建議你最好加上return語句了吧!不過,gcc3.2(Linux下的C編譯器)會在生成的目標文件中加入return 0;。
2、C++
C++98中定義了如下兩種main函數的定義方式:
int main()
int main(int argc,char*argv[])
int main()等同于C99中的int main(void);int main(int argc,char*argv[])的用法也和C99中定義的一樣。同樣,main函數的返回值類型也必須是int。
如果main函數的末尾沒寫return語句,C++98規定編譯器要自動在生成的目標文件中加入return 0;。同樣,vc6也不支持這個特性,但是g++3.2(Linux下的C++編譯器)支持。
參考資料:
百度百科——return
C語言計算字符串長度,可以手動計算也可以使用庫函數或者sizeof()操作符。
方法:
自定義函數求長度
使用strlen()函數
使用sizeof()操作符
自定義函數:
int cont_str(char *s)
{
int i = 0; ? ?
while ( str[i++] != '\0')? ?;
return i;
}
使用string頭文件中的strlen()函數:
strlen(str); //假設str為待求的字符串數組名
使用sizeof()操作符:
sizeof(str)/sizeof(str[0]); //假設str為待求的字符串數組名
注意:
strlen()函數求出的字符串長度為有效長度,既不包含字符串末尾結束符 ‘\0’;
sizeof()操作符求出的長度包含字符串末尾的結束符 ‘\0’;
當在函數內部使用sizeof()求解由函數的形參傳入的字符數組的長度時,得到的結果為指針的長度,既對應變量的字節數,而不是字符串的長度,此處一定要小心。
分享題目:c語言求函數長度 c語言求長度的函數
分享鏈接:http://www.yijiale78.com/article36/ddocopg.html
成都網站建設公司_創新互聯,為您提供網站導航、App開發、云服務器、品牌網站建設、網頁設計公司、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯