程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言計算字符長度的函數 strlen的問題

c語言-C語言計算字符長度的函數 strlen的問題

編輯:編程綜合問答
C語言計算字符長度的函數 strlen的問題

下面這段:

 int main(){
  char s[]="hello world";
  char *n;

    n=&s[0];
  int t=strlen(n);
  printf("%d\n",t);
}

得到字符長度是11,但是如果把char s[]="hello world";改為char s[11]="hello world";
最後的值就會變成17,多出來的6是怎麼回事

另外 如果重寫strlen方法

 size_t strlen(const char *s){
  int n;
  for(n=0;*s!='\0';s++)
    n++;
  return n;
}

for循環裡的*s!='\0'改成EOF 最後的結果就會變成24

最佳回答:


char s[]="hello world"是直接在最後賦值‘\0’;而改為char s[11]="hello world"則是用11個那麼大的地方存放你的字符串,然而並沒有結尾,所以後者你不一定一直是17,因為他的’\0‘不一定就在後第6個位置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved