我编写了一个程序,应该接收一个字符串和一个字母作为参数,然后调用一个带有两个参数的函数(即该字符串和字母),并计算字符串中该字母的频率。
但我的代码存在问题,因为对于任何字母它总是返回值为零的
但我的代码存在问题,因为对于任何字母它总是返回值为零的
num
。#include <stdio.h>
#include <stdlib.h>
int Occur(char [], char);
int main()
{
char s[100], l;
printf("Enter A String:\n");
scanf("%s",s);
printf("Enter A Letter:\n");
scanf("%c",&l);
getchar();
printf("Num Of Occurance is %d ",Occur(s,l));
return 0;
}
int Occur(char S[100], char L)
{
int i;
int num=0;
for(i=0; S[i]!='\0'; i++)
{
if(S[i]==L)
num++;
}
return num;
}
%s
扫描一个单词,%c
扫描下一个字符,很可能是空格或换行符。您可以通过在%c
前加一个空格来跳过空白符:scanf(" %c",&l);
。 - M Oehm