前の投稿は分かりにくかったですね。文字列の課題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
徹夜

前の投稿は分かりにくかったですね。文字列の課題

#1

投稿記事 by 徹夜 » 18年前

文字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:前の投稿は分かりにくかったですね。文字列の課題

#2

投稿記事 by Hermit » 18年前

色々おかしいです。
どこが変かご自分でチェックしてみてください。
#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;
}

閉鎖

“C言語何でも質問掲示板” へ戻る