s.begin()또는 s.substr(0,1)과 char와의 비교는 어떻게하나요?
259
작성한 질문수 17
안녕하세요
제가 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;
}
1-E질문입니다!
0
515
2
3-L 틀린 부분 피드백 부탁드립니다.
0
815
2
1-A문제 순열재귀함수 질문입니다.
0
380
1
1-A 일곱난쟁이문제입니다
0
454
1
문제 풀 때 방향성에 대해
0
797
1
맥에서 vs code로 실행 관련 질문입니다
0
520
1
17071번 메모리 초과
0
384
1
1-C질문입니다!
0
417
2
2-B BFS 시간초과질문
0
628
2
1-O 13번 라인
0
437
1
6-J 놀이공원 문제 질문
0
379
1
구현관련 질문
0
481
1
강의 교안
0
316
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
544
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
534
1
1-K
0
471
2
3-G번 질문있습니다.
1
469
3
3-C 실행 시간 질문드립니다.
0
491
1
4-A 문제 풀이 질문있습니다.
0
590
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
433
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
332
1
3-O go 함수 질문 드립니다.
1
443
2
4-A 출력 질문
0
301
1
1주차 1-O 질문드립니다
0
253
1





