C++에서 find_first_of() 함수를 사용하는 방법

How Use Find_first_of Function C



C++에는 문자열 데이터와 함께 작동하는 다양한 내장 함수가 있습니다. NS find_first_of() 함수는 지정된 문자가 처음 나타나는 위치를 찾는 데 사용됩니다. 이 함수는 이 함수의 인수 값으로 제공될 문자열의 첫 번째 발생 위치를 반환합니다. C++에서 문자열을 검색하기 위해 이 함수를 사용하는 다양한 방법이 이 튜토리얼에서 설명되었습니다.

전제 조건

이 튜토리얼의 예제를 확인하기 전에 시스템에 g++ 컴파일러가 설치되어 있는지 확인해야 합니다. Visual Studio Code를 사용하는 경우 필요한 확장을 설치하여 C++ 소스 코드를 컴파일하여 실행 코드를 만듭니다. 여기에서 Visual Studio Code 응용 프로그램은 C++ 코드를 컴파일하고 실행하는 데 사용되었습니다.







find_first_of() 함수의 특징

NS find_first_of() 함수는 첫 번째 인수의 값에 따라 다양한 유형의 변수를 반환할 수 있습니다. 첫 번째 인수 값이 문자열이면 문자열의 검색 위치를 반환합니다. 문자 배열에 대한 포인터가 첫 번째 인수에 제공되면 문자열의 검색 위치를 반환합니다. 세 번째 인수의 값이 주어지면 버퍼 위치를 반환합니다. 문자가 첫 번째 인수에 제공되고 기본 문자열에 존재하는 경우 문자 위치를 반환합니다. 검색의 시작 위치는 이 함수의 두 번째 인수로 설정됩니다. 이 함수의 다른 구문은 아래에 나와 있습니다.



통사론

string size_t find_first_of (const string& str, size_t pos = 0) const;
c-문자열 size_t find_first_of (const char* s, size_t pos = 0) const;
버퍼 size_t find_first_of (const char* s, size_t pos, size_t n) const;
문자 size_t find_first_of (char c, size_t pos = 0) const;



예 1: 문자열의 특정 문자 검색 및 바꾸기

다음 예제는 문자열에서 특정 문자의 위치를 ​​검색하는 방법을 보여줍니다. 특정 문자를 다른 문자로 바꾸려면 다음 코드를 사용하여 C++ 파일을 만듭니다. 코드에서 find_first_of() 함수는 문자열에서 특정 문자의 모든 위치를 검색하고 루프를 사용하여 해당 문자를 다른 문자로 바꾸는 데 사용되었습니다. 코드를 실행한 후 원래 문자열과 대체된 문자열이 인쇄됩니다.





//출력을 인쇄하기 위한 포함
#포함하다
//size_t를 사용하기 위해 포함
#포함하다

정수기본()
{
//문자열 변수 초기화
시간::strData('LinuxHint에 오신 것을 환영합니다');
//원본 문자열 출력
시간::비용 << '원래 문자열은 ' +strData<< 'N';
//문자 'i'의 모든 위치 찾기
시간::size_t검색 목록=str데이터.find_first_of('NS');
// 루프를 반복하여 모든 'i'를 '@'로 대체합니다.
동안 (검색 목록!=시간::::NPO)
{
strData[검색 목록] = '@';
검색 목록=str데이터.find_first_of('NS',검색 목록+1);
}
//수정된 문자열을 출력
시간::비용 << '수정된 문자열: ' +strData<< 'N';

반품 0;
}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다.



예 2: 검색 문자의 첫 번째 위치 검색

다음 코드를 사용하여 C++ 파일을 만들어 여러 문자로 구성된 문자열의 위치를 ​​검색하고 기본 문자열과 일치하는 문자의 첫 번째 위치를 반환합니다. 문자열 데이터는 문자열 변수에 할당되었으며 첫 번째 위치는 정수 변수에 저장됩니다. 코드 실행 후 위치 값이 인쇄됩니다.

//출력을 인쇄하기 위한 포함
#포함하다

정수기본()
{
// 문자열 변수 초기화
시간::strData( '기본 C++ 프로그래밍');
// 위치를 저장할 interger 변수 선언
정수위치;
// 'C++' 문자 검색
위치=str데이터.find_first_of( 'ㅁ++' );
// 위치 값 확인
만약 (위치> = 0)
{
// 문자가 발견되면 위치를 출력
시간::비용 << '캐릭터 '' <<strData[위치]
<< ''이(가) 찾았습니다. << ' 위치에 ' <<위치<< 'N';
}

반품 0;
}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다. 여기서 문자 ' + ' 문자열의 ' 케이 ++ ' 위치에서 찾았고, 7 주 문자열의 ' 기본 C++ 프로그래밍 '.

예 3: 특정 위치 뒤의 특정 문자 검색

특정 위치 다음에 특정 문자를 검색하려면 다음 코드로 C++ 파일을 만듭니다. 문자열 변수에는 문자열 데이터가 저장되고, 특정 문자열은 위치 13 이후에 검색됩니다. 검색 문자열의 문자가 주 문자열에서 발견되면 위치 값이 반환됩니다.

//출력을 인쇄하기 위한 포함
#포함하다

정수기본()
{
//문자열 변수 초기화
시간::strData= 먹기 위해 사는 것이 아니라 살기 위해 먹는다';
//원본 문자열 출력
시간::비용 << '원래 문자열은 ' +strData<< 'N';
//마지막 문자가 발견된 위치를 출력
시간::비용<<'위치에서 찾은 마지막 일치 문자:'
<<str데이터.find_first_of('에',13) << 'N';
반품 0;
}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다. 여기서 문자 ' 에게 ' 문자열의 ' ~에 ' 위치에서 찾았고, 열 다섯 주 문자열의 ' 먹기 위해 사는 것이 아니라 살기 위해 먹는다 '.

예 4: 일치하는 첫 번째 숫자의 위치 검색

다음 코드로 C++ 파일을 만들어 두 번째 벡터 목록에서 첫 번째 벡터 목록의 각 번호를 검색하고 첫 번째 벡터 목록과 일치하는 번호의 위치를 ​​반환합니다. 일치하는 인수가 발견되면 위치 값이 반환됩니다. 그렇지 않으면 메시지가 인쇄됩니다.

//출력을 인쇄하기 위한 포함
#포함하다
//벡터에서 데이터 검색을 위해 포함
#포함하다
//벡터 데이터 사용을 위한 포함
#포함하다

정수기본()
{
//두 개의 벡터 리스트 선언
시간::벡터목록1{10,5,65,31,7};
시간::벡터목록2{2,77,5,38,32,55};
//list1의 데이터를 list2로 검색
자동산출=시간::find_first_of(목록1.시작하다(), 목록1.(), 목록2.시작하다(), 목록2.());
// 일치하는 숫자의 위치를 ​​읽습니다.
정수위치=시간::거리(목록1.시작하다(), 출력);

// 임의의 수의 list1이 임의의 수의 list2와 일치하는지 확인합니다.
만약 (산출<목록1.()) {
시간::비용 << '첫 번째 일치 숫자' <<목록1[위치] << ' 위치에서 찾았습니다. <<위치<< 'N';
}
또 다른 {
시간::비용 << '일치하는 번호가 없습니다.N';
}
}

산출:

위의 코드를 실행하면 다음 출력이 나타납니다. 첫 번째 배열의 숫자 값 5는 두 번째 배열에 존재하며 이 숫자의 위치는 1입니다.

결론

find_first_of() 함수는 다양한 프로그래밍 목적으로 문자나 숫자를 검색하는 데 사용할 수 있습니다. 이 기능은 다양한 검색 문제를 해결하는 데 사용할 수 있습니다. C++ 프로그래머가 이 튜토리얼을 읽은 후 이 기능을 제대로 사용할 수 있기를 바랍니다.