文字strの中に、文字cが含まれている個数(含まれていなければ0)を返す関数
int str_chum(const char str[/url],int c)
を作成せよと言う問題なのですが
下まで作ってみたのですが、実行結果
どんな文字を打っても個数は0個ですとでてしまい数えられていないのですが
どこがおかしいですか
#include<stdio.h>
int str_chum(const char str[/url],int c);
int main()
{
char st[256];
char ch[10];
printf("文字列を入力してください:");
scanf("%s",st);
printf("個数を数えたい文字を入力してください:");
scanf("%s",ch);
printf("入力された文字の個数は%dです",str_chum(st,ch[0]));
}
int str_chum(const char str[/url],int c)
{
int i;
int count=0;
if(i=0,str!='\0',i++){
if(*str==c)
count++;
}
return(count);
}
前の投稿は分かりにくかったですね。文字列の課題
-
Hermit
Re:前の投稿は分かりにくかったですね。文字列の課題
色々おかしいです。
どこが変かご自分でチェックしてみてください。
どこが変かご自分でチェックしてみてください。
#include<stdio.h>
int str_chum1(const char str[/url], int c);
int str_chum2(const char str[/url], int c);
int main()
{
char st[256];
char ch[10];
printf("文字列を入力してください:");
scanf("%s", st);
printf("個数を数えたい文字を入力してください:");
scanf("%s", ch);
printf("入力された文字の個数は%dです\n", str_chum1(st, ch[0]));
printf("入力された文字の個数は%dです\n", str_chum2(st, ch[0]));
return 0;
}
int str_chum1(const char str[/url], int c)
{
int i;
int count = 0;
for (i = 0; str != '\0'; i++) {
if (str == c)
count++;
}
return count;
}
int str_chum2(const char *str, int c)
{ // bcc32 Ver5.5.1 では、const char str[/url] ではエラーになるようなので、変更。他では問題ないはず。
int count = 0;
for ( ; *str != '\0'; str++) {
if (*str == c)
count++;
}
return count;
}