0

テキスト ファイルを読み取り、ファイルの各単語を Word クラスのデータ メンバーである文字配列 (文字配列である必要があり、文字列は許可されていません) に変換するコードがあります。句読点が検出されると、すべての Word オブジェクトがリンクされたリストとして Sentence クラスに格納されます。タブが検出されると、それ以前のすべてのセンテンスがリンクされたリストとして Paragraph クラスに格納されます。私が助けを必要としているのは、テキスト ファイル内の '\t' をチェックする方法です。私は使用して読んでいます

while(myFile >> charArray){
//stuff
}

これは完全な単語を読み取り、charArray. それがセンテンスの最後である場合charArray[size](サイズは最後の要素です) == '.' || == "!" || == "?"、毎回新しいセンテンスの作成を処理できます (テキスト ファイルは毎回適切にフォーマットされると想定できます)。どうすればよいかわからないのは、「\t」文字をチェックして新しい段落を作成する方法です。'\t' は によって取得されmyFile >> charArrayますか? if「\t」文字を拾えるかどうかを確認するために、さまざまなステートメントをいじってみましたが、できませんでした。では、テキスト ファイルから文字配列に読み込むときにタブを確認するにはどうすればよいでしょうか。

4

2 に答える 2

0

これはあなたを助けるかもしれません/あなたが探しているものになるかもしれません:

http://www.cplusplus.com/reference/cstring/strchr/

C++ によって提供されるオーバーロードに興味がある場合:

char * strchr ( char * str, int character );

これは、文字が最初に出現した場所へのポインターを返します。見つからない場合は null ポインターを返します。

使用例 (Cplusplus.com からも提供) は次の場所にあります。

/* strchr example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] = "This is a sample string";
  char * pch;
  printf ("Looking for the 's' character in \"%s\"...\n",str);
  pch=strchr(str,'s');
  while (pch!=NULL)
  {
    printf ("found at %d\n",pch-str+1);
    pch=strchr(pch+1,'s');
  }
  return 0;
}    
于 2014-10-22T19:04:23.970 に答える