我試圖編寫一個程序來計算給定字符串中給定字符的出現次數。爲什麼我得到錯誤的輸出,我該如何解決這個問題?
這裏的程序:
#include <stdio.h>
#include <string.h>
int find_c(char s[], char c)
{
int count;
int i;
for(i=0; i < strlen(s); i++)
if(s[i] == c)
count++;
return count;
}
int main()
{
int number;
char s[] = "fighjudredifind";
number = find_c(s, 'd');
printf("%d\n",number);
return 0;
}
我期待下面的輸出:
3
因爲在字符串s字符 'd' 的出現次數爲3
每次我嘗試運行程序時,屏幕上都會顯示不同的數字。例如,我得到了下面的輸出運行程序一次,而:
-378387261
,並得到這個輸出,運行程序時的另一個時間:
141456579
爲什麼我得到錯誤的輸出,以及如何我能解決這個問題嗎?
提前致謝!
什麼樣的價值是在計數循環開始之前? – stark
@stark我猜這是0,因爲在默認情況下將int初始化爲零C – Tree
非靜態本地(a.k.a *自動*)變量未初始化,它們的值爲* indeterminate *。在沒有初始化的情況下使用它們會導致*未定義的行爲*。 –