テキスト内の特定の文字を含まない単語の数を見つけるプログラム

ジャシム・アルソクニ

次のプログラムは、ループがヌル文字を超えているためか、画面に何も出力せずに実行されます。これが発生する理由と方法、および修正方法がわかりません。

//program to find how many word in the text doesn't contain p char

#include<stdio.h>
#include<stdbool.h>
#define space ' '

void find_word(char s[]) {
  bool wordfound = false;

  int i, j = 0, word = 0;
  i = 0;

  while (s[i]) { //s[i]!='\0'  does not

    if (s[i] != 'p' && s[i + 1] != space) { //for the first word 
      wordfound = true;
      word++;
    }

    wordfound = false;

    if (s[i] == space && s[i + 1] != space) { //for more than one word in the text 
      for (j = i + 1; s[j] != space; j++)
        if (s[j] != 'p' && s[j + 1] != space)
          wordfound = true;
    }
    if (wordfound) {
      word++;
    }
    wordfound = false;
    i = j;
    i++;
  } //end while loop

  printf("Number of words not contain p character%d\n\n", word);

}

int main(void) {
  char s[] = {"pppp zzzz ppp ssss dfg sfsfdsf"};
  find_word(s);
  return 0;
}
andy.codes

このコードにはいくつかの問題がありますが、主な問題は、ループ内でjiに割り当てることです。これにより、while(s [i])条件が満たされないため、無限ループが発生します次のように、シンプルにしてみませんか。

//program to find how many word in the text doesn't contain p char

#include<stdio.h>
#include<stdbool.h>
#define space ' '

void find_word(char s[]) {
  bool is_in = false;
  short words_count = 0, i = 0; 

  while (s[i]) {
      if (s[i] == 'p') { // if this letter is a 'p', mark the word
          is_in = true;
      }

      if (s[i] == space) { // if it's end of word
          if (!is_in) { // check if 'p' is present and increase the count
              words_count++;
          }
          is_in = false;
      }

      i++;
  }

  if (!is_in) { // check if the last word has 'p'
      words_count++;
  }

  printf("no. of words without p is %d\n", words_count);

}

int main(void) {
  char s[] = {"pppp zzzz ppp ssss dfg sfsfdsf"};
  find_word(s);
  return 0;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字列内の最長の単語を見つけるプログラム

分類Dev

テキスト文字列内の単語を見つけて数える方法は?

分類Dev

特定の文字を含まない単語を見つける方法は?

分類Dev

大きなテキストファイル内の特定の単語を含む行を見つける最も速い方法

分類Dev

テキスト内の単語の位置を見つける

分類Dev

文中の各単語の文字数を見つけるJavaプログラム

分類Dev

特定の文字列内の回文である部分文字列の数を見つけるプログラム

分類Dev

アイテムのリスト内で特定の単語を見つけることができません

分類Dev

複数のテキストファイルで特定の単語をループして見つける方法は?

分類Dev

辞書ファイル内の2つの単語の距離を見つけるためにJavaプログラムに取り組んでいます

分類Dev

特定の単語/フレーズ/番号が見つかる/見つからないまでクロムタブを自動更新し、その後停止するプログラム/スクリプトなど

分類Dev

単語内の特定の文字の番号を見つける方法は?

分類Dev

最後の単語と残りのテキストを含むキャプチャグループを見つけるための正規表現

分類Dev

長い文字列内の特定の単語の前の\ nの数を見つけます

分類Dev

特定の単語を含まず、文字と数字を含む単語を含まない文字列内のテキストを照合するにはどうすればよいですか?

分類Dev

特定の文字列に応じて、プログラム内の1つの単語を変更します

分類Dev

バイグラムの頻度を見つけるために単語リストの文字を区切る方法

分類Dev

テキストファイル内の特定の単語の頻度をカウントするCのプログラム

分類Dev

c#2つのテキストで異なる単語を見つける

分類Dev

列にテキストを含み、文字列の最初の6文字に特定の単語が含まれていないセルを検索する

分類Dev

テキスト内の特定の単語を見つけて、Pythonを使用してそれらを数える方法は?

分類Dev

テキスト内の特定の単語を見つけて、Pythonを使用してそれらを数える方法は?

分類Dev

特定の語尾を持つすべての単語をテキストで見つける方法は?

分類Dev

Notepad ++のテキストドキュメント内の特定の文字列を含む単語を削除する

分類Dev

Javaで単語内の文字の出現数を見つける

分類Dev

特定の単語を含むスパンを見つける方法

分類Dev

プログラムがテキストファイルを見つけられないというエラーが表示されるのはなぜですか

分類Dev

特定のテキストを見つけて、その次の2つの単語を印刷する方法

分類Dev

Selenium:含まれるオプションのない特定のテキストを持つ要素を見つける方法

Related 関連記事

  1. 1

    文字列内の最長の単語を見つけるプログラム

  2. 2

    テキスト文字列内の単語を見つけて数える方法は?

  3. 3

    特定の文字を含まない単語を見つける方法は?

  4. 4

    大きなテキストファイル内の特定の単語を含む行を見つける最も速い方法

  5. 5

    テキスト内の単語の位置を見つける

  6. 6

    文中の各単語の文字数を見つけるJavaプログラム

  7. 7

    特定の文字列内の回文である部分文字列の数を見つけるプログラム

  8. 8

    アイテムのリスト内で特定の単語を見つけることができません

  9. 9

    複数のテキストファイルで特定の単語をループして見つける方法は?

  10. 10

    辞書ファイル内の2つの単語の距離を見つけるためにJavaプログラムに取り組んでいます

  11. 11

    特定の単語/フレーズ/番号が見つかる/見つからないまでクロムタブを自動更新し、その後停止するプログラム/スクリプトなど

  12. 12

    単語内の特定の文字の番号を見つける方法は?

  13. 13

    最後の単語と残りのテキストを含むキャプチャグループを見つけるための正規表現

  14. 14

    長い文字列内の特定の単語の前の\ nの数を見つけます

  15. 15

    特定の単語を含まず、文字と数字を含む単語を含まない文字列内のテキストを照合するにはどうすればよいですか?

  16. 16

    特定の文字列に応じて、プログラム内の1つの単語を変更します

  17. 17

    バイグラムの頻度を見つけるために単語リストの文字を区切る方法

  18. 18

    テキストファイル内の特定の単語の頻度をカウントするCのプログラム

  19. 19

    c#2つのテキストで異なる単語を見つける

  20. 20

    列にテキストを含み、文字列の最初の6文字に特定の単語が含まれていないセルを検索する

  21. 21

    テキスト内の特定の単語を見つけて、Pythonを使用してそれらを数える方法は?

  22. 22

    テキスト内の特定の単語を見つけて、Pythonを使用してそれらを数える方法は?

  23. 23

    特定の語尾を持つすべての単語をテキストで見つける方法は?

  24. 24

    Notepad ++のテキストドキュメント内の特定の文字列を含む単語を削除する

  25. 25

    Javaで単語内の文字の出現数を見つける

  26. 26

    特定の単語を含むスパンを見つける方法

  27. 27

    プログラムがテキストファイルを見つけられないというエラーが表示されるのはなぜですか

  28. 28

    特定のテキストを見つけて、その次の2つの単語を印刷する方法

  29. 29

    Selenium:含まれるオプションのない特定のテキストを持つ要素を見つける方法

ホットタグ

アーカイブ