전공/C++

[C++] string 관련 함수

erin0 2022. 7. 7. 20:36

 

 

 

# find

string.find(char, int)

string.find(string, int)

string.find(char)

string.find(string)

#include <iostream>
#include <string>
using namespace std;
int main() {
	string s;			//input string
	int num[26] = { 0, };		//알파벳 26자 표현하기 위해 int배열로 선언하기, 전부 0으로 초기화
	cin >> s;
	for (int i = 0; i < 26; i++) {
		int n;
		n = s.find((char)97 + i);  //int 97부터 97+26까지 char로 변환하며 검색(==알파벳 a부터x)
		if (n != string::npos) {  //찾으려는 문자가 있는경우 첫번째 인덱스 위치 저장
			num[i] = n;
		}
		else					  //찾으려는 문자가 없는 경우 -1 저장
			num[i] = -1;
	}
	for (int i = 0; i < 26; i++) {
		cout << num[i] << " ";
	}
	
}

string.find(char,int);   //string의 int번째 문자에서부터 char를 찾아 첫번째 인덱스 출력

string.find(char);       //string에서 char를 찾아 가장 처음에 있는 글자의 인덱스 출력한다.

 

string에 찾으려는 문자가 없다면 std::string::npos를 반환한다.

위의 코드는 using namespace std;를 해주어서 찾으려는 문자가 없는지 string::npos로 확인했다.