質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Yuhiwa
記事: 11
登録日時: 2年前

質問

#1

投稿記事 by Yuhiwa » 2年前

コード:

#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文字含まれています。

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

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

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 質問

#2

投稿記事 by みけCAT » 2年前

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

最後に、アルゴリズムを直すべきでしょう。
適当な方法で文字列を検索した後、見つかればその1個次の文字から検索する、
を繰り返すことで、全ての検索対象を検索することができます。
文字列 検索 C言語 - Google 検索
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Yuhiwa
記事: 11
登録日時: 2年前

Re: 質問

#3

投稿記事 by Yuhiwa » 2年前

ありがとうございます。

Yuhiwa
記事: 11
登録日時: 2年前

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

#4

投稿記事 by Yuhiwa » 2年前

修正箇所を教えていただけますか?

box
記事: 2002
登録日時: 13年前

Re: 質問

#5

投稿記事 by box » 2年前

コード:

#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;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

Yuhiwa
記事: 11
登録日時: 2年前

Re: 質問

#6

投稿記事 by Yuhiwa » 2年前

ありがとうございます。助かりました。

返信

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