23.03.03 11:43 작성
·
380
0
안녕하세요 강사님!
질문이 많은데도 항상 답글 달아주셔서 감사합니다.
http://boj.kr/db4f11ea95744e9598cedb54483b9800 // s.substr(0, 1)은 11행에 있습니다.
저는 입력한 string형 s에서 첫번째 문자를 추출하고 싶을때, s[0]이 아닌 s.substr(0, 1)을 사용하고 싶었습니다.
그러하였더니 타입이 맞지 않는다고 컴파일 에러가 떠서 int(s.substr(0, 1))로 바꾸어서 실행시켜봤지만 타입이 맞지 않는다고 컴파일 에러가 다시 떴습니다.
s.substr(0, 1)은 char형인데 이것을 정수형으로 바꾸고 싶을때는 int(s.substr(0, 1)) 로 하는게 맞는건가요?
s.substr(0, 1)을 이 문제에서 사용하지 못하는 이유가 있다면 이유가 무엇일까요?
답변 2
1
2023. 03. 05. 03:57
안녕하세요 1209님 ㅎㅎ
일단은요.
string substr (size_t pos = 0, size_t len = npos) const;
substr은 string을 반환하는 함수입니다.
즉,
이렇게 바꿔주셔야 합니다.
for(int i = 0; i < N; i++){
cin >> s;
string temp = s.substr(0, 1);
cnt[temp[0]- 'a']++;
}
string으로 받고
string은 제가 뭐라고했죠?
문자들을 담은 배열이다~ 라고 했죠
즉, 문자열의 0, 1, 2, 3 은 문자기 때문에 저렇게 0번째~ 하고 넣으시면 자동으로 char이 되게 됩니다.
string 벡터까지는 필요 없어요. :)
감사합니다.
0
추가적으로, string형 vector v를 만들었습니다. //5행과 12~14행
http://boj.kr/e316d230d42b42c285195ec86ce09073
하지만, 실행되지 않고 컴파일 오류가 뜹니다.
12행부터 14행까지 어느 부분이 잘못된 코드인지 봐주시면 감사하겠습니다.