작성
·
235
0
안녕하세요
제가 1159번 문제를 풀다가 의문이 생겨서 질문 드립니다.
저는 문자열 첫글자를 s.begin()또는 s.substr(0,1)을 통해 추출한 후, 이를
for (int i = 0; i < a; ++i) {
for (int j = 0; j < 26; ++j) {
if (s[i].begin() == ('a' + j)) {
++cnt[j];
}
}
}
다음과 같은 방식으로 비교하려 하였습니다.
하지만, (s[i].begin() == ('a' + j)) 이 부분에서 둘이 비교할 수 없다면서 오류가 뜨더군요.
형변환을 시켜서 비교를 시도해보아도 오류는 사라지지 않았습니다.
이 둘은 어떻게 비교를 해야하나요?
답변 1
0
일단 s.begin()는 이터레이터를 반환해요.
만약에 비교를 하고 싶다면 이렇게 하시면 됩니다.
#include <bits/stdc++.h>
using namespace std;
string s = "123";
int main() {
if((char) * s.begin() == '1') cout << 1;
return 0;
}