C++ でのファイル内の文字列の検索

C言語では、文字列はchar文字の配列に格納され、char型は文字を格納できます(1文字のみと言い、それ以上は格納しません)。また、-128 から 127 までの数値も格納できます.
コンピュータは数字しか理解できないので、文字は数字に変換されます。したがって、各文字は数字に関連付けられています。C言語はこれを非常に迅速に行います。例:

文字「a」は、ASCIIコードで数字の97に対応します。確認するには、alt+97.

  char letter = 」から「;
  printf("%c\n", letter);

ページ チャンネル は char:
   char string[]="私はプログラマーです";

私たちの目標は、テキストファイルから読み取り、テキストファイルが利用可能かどうかを調べることです。string はこのファイルにあります。 ディレクトリ "C:/test.txt", c ファイルには、次のようなテキストが含まれています:My name is X and I'm a programmer.

C言語では、 char channel[] は次のように表されます:


j
e
s
u
i
s
u
n
p
r
o
g
r
a
m
m
e
u
r
'\0'

' \0 ' 配列の末尾を示します。


#include 
#include
#include <文字列>
#include
using namespace std;

void searchInFile(char string[])
{
ifstream myStream("C:/test.txt");
if(myFlow)
{
int i=0,position=0;
//読み取りは文字ごとに行われます
myFlux.clear();
//0
の再生ヘッドを初期化します //ios::beg: start から開始
myFlux.seekg(0, ios::beg);
char c;
//ファイルの末尾でない限り
while(myStream.get(c))
{
//再生ヘッドの位置をインクリメント
position++;
//文字が
の文字と一致する場合 //i
//次の文字に移動します
if(c==string[i]){
i++;
//文字列内のすべての文字が
//チェックされている場合、文字列が見つかりました
//ファイル
if(i==strlen(string)) //strlen: 文字列の長さを返します
printf("検索された文字列は %d "
" の位置にあり、%d の位置で終わります\n, 位置strlen(文字列),位置);
}
//それ以外の場合、一致しない文字が見つかった場合
//一致しない文字
//0
else
i=0;
}
}
else
printf("ファイルを開くことができません\n");
}

int main()
{
char string[]="プログラマー";
searchFile(文字列);
system("pause");
}