本文目錄一覽:
c語言字符長度函數
正確的答案是5,題目選項有誤。
首先strlen()函數返回的長度是不包含’\0’,
第一個字符為:a
第二個字符為:b
第三個字符為:\n (換行符)
第四個字符為:2
第五個字符為:\ (\\轉義為\)
所以答案為5。
(下圖為實際代碼演示)
擴展內容:
strlen()函數(C語言函數):
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符’\0’為止,然後返回計數器值(長度不包含’\0′)。
參考資料:strlen函數 – 百科
c語言:編寫一個函數求給定字符串長度?
方法一:數組方式
代碼如下:
lt;span style=”font-size:18px;”gt;#includelt;stdio.hgt;
#includelt;assert.hgt;
int my_strlen(char const*str)
{
int count=0;
assert(str);//斷言,判斷指針的有效性
while(*str++!=NULL)
{
count++;
}
return count;
}
int main()
{
char arr[30]=”trouble is a friend.”;
printf(“%d\n”,my_strlen(arr));
getchar();
return 0;
}lt;/spangt;
運行結果:
方法二:指針方式
說明:當兩個指針都指向同一個數組中的元素,指針減指針就是指針與指針之間元素的個數;兩個地址相加沒有實際意義。
代碼如下:
lt;span style=”font-size:18px;”gt;#includelt;stdio.hgt;
int my_strlen(char const*str)
{
char const*tmp=str;
while(*str!=’\0′)
{
str++;
}
return str-tmp;
}
int main()
{
char arr[30]=”trouble is a friend.”;
printf(“%d\n”,my_strlen(arr));
getchar();
return 0;
}lt;/spangt;
c語言,用函數計算字符串長度
getchar()函數的原型是 int getchar( void )
返回值是整型的
功能是:從標準輸入中讀取一個字符,也就是鍵盤敲擊字符,只接收單個字符
可以用gets()函數來接收多個字符
這裡的 s 接收的是該字符的ASCII碼,非長度。
如果從原基礎上改可以這樣
int i;
char s[20]; /*字符串需要長度*/
gets( s );
i = num( s );
int num( char *s ) /* 這裡的指針 ,後面學得到*/
{
}
套上去就可以了
如何在c語言中計算字符串長度
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()求解由函數的形參傳入的字符數組的長度時,得到的結果為指針的長度,既對應變量的位元組數,而不是字符串的長度,此處一定要小心。
原創文章,作者:ZGCJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133843.html