ページ 11

質問

Posted: 2022年2月19日(土) 15:26
by Yuhiwa

コード:

#include<stdio.h>
#define SIZE 100

int main(void){
	
	char str[SIZE]={'\0'};
	char kensaku[SIZE]={'\0'};
	int sum=0;
	int len=0;
	int i;
	
	printf("文字列を入力>"); scanf("%s",str);
	printf("検索する文字列を入力>"); scanf("%s",kensaku);
	while(str[len] !='\0'){  //文字数のカウント
		len++;
				while(kensaku[sum] !='\0'){
		sum++;
	}
}
	printf("文字列%sの中に%sは%u文字含まれています。\n",str,kensaku,sum);
	return 0;
}
実行結果
文字列を入力>apple_banana_orange
検索する文字を入力>a
文字列apple_banana_orange中にaは5文字含まれています。

プログラム実行結果は以上です。

これのどこを直したらいいかをお願いします。

Re: 質問

Posted: 2022年2月19日(土) 15:59
by みけCAT
まず、前のトピックで指摘されている通り、トピックのタイトルの付け方を直すべきでしょう。
box さんが書きました:
2年前
その際、タイトルは「質問」なんかではなく、投稿の内容を端的に示す具体的なものにしましょう。
次に、簡単なところから直していきましょう。
実行結果は「検索する文字を入力」なのに、
プログラムでは「検索する文字列を入力」となっており、余計な「列」が入っています。
また、実行結果は「文字列apple_banana_orange中に」なのに、
プログラムでは「文字列%sの中に」となっており、余計な「の」が入っています。
インデントも整えるといいでしょう。

最後に、アルゴリズムを直すべきでしょう。
適当な方法で文字列を検索した後、見つかればその1個次の文字から検索する、
を繰り返すことで、全ての検索対象を検索することができます。
文字列 検索 C言語 - Google 検索

Re: 質問

Posted: 2022年2月19日(土) 16:54
by Yuhiwa
ありがとうございます。

何処を修正したらいいのかを教えていただけると助かります。

Posted: 2022年2月19日(土) 16:56
by Yuhiwa
修正箇所を教えていただけますか?

Re: 質問

Posted: 2022年2月19日(土) 20:58
by box

コード:

#include <stdio.h>
#include <string.h>

#define SIZE (100)

int searchChar(char *s, char c)
{
    int n, i;

    for (n = i = 0; s[i]; i++) {
        if (s[i] == c) n++;
    }
    return n;
}

int main(void){

    char str[SIZE], kensaku;

    printf("文字列を入力>"); fgets(str, SIZE, stdin);
    str[strlen(str) - 1] = '\0';
    printf("検索する文字を入力>"); kensaku = fgetc(stdin);
    printf("文字列%sの中に%cは%d文字含まれています。\n",
        str, kensaku, searchChar(str, kensaku));
    return 0;
}

Re: 質問

Posted: 2022年2月19日(土) 22:39
by Yuhiwa
ありがとうございます。助かりました。