Algorithm
[알고리즘] C++ string::find() 사용법
용성군
2021. 12. 30. 20:05
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
반응형