728x90
반응형
알고리즘 풀 때, 문자열에 대한 문제가 나오는 경우가 많다. 이때 마다 인터넷을 검색해서 풀 수 없으니 정리를 해보고자 한다.
C++ string 변수에서 특정 문자열을 찾을 때, std::string의 find() 함수를 사용한다.
예시1
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
string s = "Enter ui1234 Muzi";
size_t index = s.find("ui1234");//size_t는 unsigned long type
printf("%zu\n", index); // zu는 unsigned long에 대한 type specifier
//출력 : 6
}
위 코드에서 index의 값은 찾고자 하는 문자열의 시작 위치가 된다. 다시 말해, text.find("ui1234")는 6을 반환한다.
예시2(index 번째 부터 find)
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
string s = "Enter ui1234 Muzi";
size_t index = s.find("ui1234",7);//size_t는 unsigned long type
printf("%zu\n", index); // zu는 unsigned long에 대한 type specifier
//출력 : 쓰레기값 출력.
}
위 코드에서 index의 값은 7번째 부터 ui1234를 찾기 때문에 쓰레기 값이 나온다.
반응형
주의 사항
찾고자 하는 문자열이 없을 때, -1이 반환되는것이 아니라 쓰레기값이 반환된다. 즉, string::npos를 반환한다.
예시
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
string s = "Enter ui1234 Muzi";
if(s.find("Jayz") == string::npos)
{
printf("Not found\n");
}
else
{
printf("Found\n");
}
//출력 : Not found
}
출력이 Not found 된다.
728x90
반응형
'Algorithm' 카테고리의 다른 글
[C++] string 자르는 2가지 방법(feat. istringstream 이용하기, substr 이용하기) (0) | 2021.12.31 |
---|---|
[C++] stringstream 사용법(feat. stream과 버퍼란 무엇인가?) (0) | 2021.12.31 |
[Algorithm] 백준 2096 내려가기 문제풀이(Feat. 메모리초과, 메모리 계산법) (0) | 2021.11.12 |
[Algorithm] 백준 16282 - Black Chain 풀이 (feat. pow 문제점) (0) | 2021.09.30 |
[Algorithm] 백준 11066 - 파일 합치기 풀이 (0) | 2021.09.29 |