주어진 문자열에서 주어진 문자의 발생 횟수를 계산하는 프로그램을 작성하려고했습니다.왜 내가 잘못된 출력을 얻었으며 어떻게 해결할 수 있습니까?
#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;
}
나는 다음과 같은 출력 기다리고 있었다 : 문자열의의 문자 'D'의 발생 횟수 이후
3
3.
입니다 여기에 프로그램입니다프로그램을 실행하려고 할 때마다 화면에 다른 번호가 표시되었습니다. 예를 들어, 내가 프로그램을 한 번 실행하는 동안 다음과 같은 결과를 얻었다 :
-378387261
을 그리고이 출력을 가지고, 프로그램을 다른 시간을 실행할 때 :
141456579
나는 잘못된 출력을 얻을 이유는 무엇 방법 이 문제를 해결할 수 있습니까?
미리 감사드립니다.
: 여기
코드인가? – stark@stark C에서 기본적으로 int가 0으로 초기화되었으므로 0이 될 것입니다. – Tree
비 정적 로컬 (a.k.a * 자동 *) 변수는 초기화되지 않았으며 값은 * indeterminate *입니다. 초기화하지 않고 사용하면 * 정의되지 않은 동작이 발생할 수 있습니다. –