看板 C_and_CPP 關於我們 聯絡資訊
如題 我知道strlen可以計算串列長度,可是陣列沒辦法 我實際跑了,結果也是錯的。 int main(int argc, char *argv[]) { int a[3]={3,1,1}; char b[9]; char *str="1234"; printf("%d",strlen(b)); system("PAUSE"); return 0; } 例如這樣,如果是strlen(str)這樣就可以 那有可以計算陣列長度的函示嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.203.30
MOONRAKER:strlen()可以是因為他假設結尾一定有'\0' 11/18 00:04
tinlans:沒有,你必須自己用變數或常數記住那個數字。 11/18 00:04
netsphere:int array : sizeof(ArrayName) / 4 11/18 00:04
ducksteven:strlen看到\0才會停止。 11/18 00:04
MOONRAKER:在一般的陣列中不會這樣,但若你能保證也許就可以 11/18 00:04
fjf1980:阿 對 我忘了strlen是看\0的 感謝 11/18 00:05
james732:在你的情況裡可以用 sizeof 11/18 00:07
tinlans:但是傳到外面去 3F 的算法就失效了,而且正確的寫法應該 11/18 00:11
tinlans:是 / sizeof(int) 而不是直接寫 4,總之自己紀錄就對了。 11/18 00:11
softwind:用sized array, 或是改用C++的vector 11/18 00:21