これは私のcom sci labでの私の決勝戦であり、メイン関数が正しいかどうか疑問に思っていました.idkが文字列で再帰を使用してこの文字が何回発生するかを数えるため、他の関数を追加しました.これには苦労しました。私を助けてください。:)
#include<stdio.h>
#include<string.h>
int count_chars(const char* string, char ch);
int main()
{
char string[BUFSIZ];
char ch[2];
int count;
printf ("Please enter a line of text, max %d characters\n", sizeof(string));
if (fgets(string, sizeof(string), stdin) != NULL)
printf ("You entered: %s\n", string);
printf("Input the letter you want to be counted: ");
gets(ch);
count=count_chars(const char* string, char ch);
printf("The number of times the letter occurs in the word above is: %d", count);
return 0;
}
int count_chars(const char* string, char ch)
{
int count = 0;
for(; *string; count += (*string++ == ch)) ;
return count;
}
例えば; 入力は: "aabbabc" の場合、検索する必要がある文字は b であるため、プログラムは次のように実行する必要があります:(これはヒントとして私に与えられたものです)。私はそれを試してみましたが、動作しません。
"b" "aabbabc"
if 'b'==st[0]
1+cnt('b', "abbabc");
else
cnt('b' , "abbabc");