C++에서 파일의 문자열 검색
C 언어에서 문자열은 char 문자 배열에 저장되고 char 유형은 문자를 저장할 수 있습니다 (우리는 한 글자 만 말하고 더 이상 말하지 않음). 또한 -128에서 127 사이의 숫자를 저장할 수 있습니다.컴퓨터는 숫자만 이해하기 때문에 문자는 숫자로 변환됩니다. 따라서 각 문자는 숫자와 연결됩니다. C 언어는 이 작업을 매우 빠르게 수행합니다. 예:
문자 'a'는 ASCII 코드에서 숫자 97에 해당합니다. 확인하려면 alt+97.
char 문자 = '에서 ';
printf("%c\n", 문자);
페이지 채널 는 char:
char 문자열[]="저는 프로그래머입니다";
우리의 목표는 텍스트 파일을 읽고 텍스트 파일을 사용할 수 있는지 확인하는 것입니다. 문자열이 이 파일에 있습니다. 에 파일이 있습니다. 예배 규칙서 "C:/test.txt", c 파일에는 텍스트가 포함되어 있습니다(예: 간단한 문장:my name is X and I'm a programmer.
C에서, char 채널[] 다음과 같이 표시됩니다.
j | e | s | u | i | s | u | n | p | r | o | g | r | a | m | m | e | u | r | '\0' |
' \0 '은 배열의 끝을 나타냅니다.
#include < iostream입니다>
#include < fstream입니다>
#include < string입니다>
#include < 스트림>
using 네임스페이스 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++;
//문자열의 모든 문자가 다음과 같으면
//checked 하면 문자열을 찾았습니다
//파일
if(i==strlen(string)) //strlen: 문자열의 길이를 반환합니다
printf("검색된 문자열은 %d "
" 위치에 있고 %d 위치에서 끝납니다.\n, position-strlen (문자열), 위치);
}
//그렇지 않으면 단일 문자를 찾으면
//일치하지 않습니다
//0
else
i=0;
}
}
else
printf("파일을 열 수 없습니다.\n");
}
int main()
{
char string[]="프로그래머";
searchFile(문자열);
시스템("일시 중지");
}