2014-12-02 4 views
1

나는 (내가 아래에 설명 할 것)이 C++ 코드가 작동하지 대문자로 문자열을 대문자로 변환하여 출력합니다. 나는 그것을 연구하면서 벡터를 사용하고 싶다. 파트 1에서는 표준 입력에서 문자열을 가져 와서 문자열 벡터에 저장합니다. 루프에서 빠져 나와 각 문자열의 문자를 대문자로 시작하려면 "quit"이라고 씁니다. 문제는 제 2 부와 분명히 같습니다. 내가 뭘하려고하는지는 다음과 같습니다. 1 반복 할 때 문자열을 가져옵니다. 2 일단 문자열이 있으면 해당 문자열에있는 문자를 가져 와서 대문자로 변환합니다. 모든 문자에 대해 이렇게하십시오. 3 - 모든 문자열에 대해이 작업을 수행하십시오.변환 문자는

컴파일 할 때 대문자로 표시되는 문자열을 제외하고 모두 올바른 결과를 얻습니다. 정말 혼란 스러워요 D :

+1

'문자열 X : C++ 1Z와 우리가 간결하고 사용할 수있을 것

for (string& x : v){ // […] } 

참고하십시오 인생을 더 쉽게 만드는, 루프 범위를 기반 개봉 v' 문자열의 사본을 수정합니다. 참조를 잊어 버렸습니다. – Borgleader

답변

4
for(string x:v){ 
    for(char &j:x){ 
     j = toupper(j); 
    } 
} 

당신은 당신이 값하여 문자열을 참조 문자열에서 모든 문자를 가지고 있지만.

for (x : v) { // Captures by reference automatically 
    // […] 
} 
+0

콜롬보 감사합니다. 나는 단지 chars가 참고로 받아 들여질 필요가있다 생각하고 있었다. 이 책은 벡터에 대해 나에게 상기시켜주지 않았다. 따라서 모든 시퀀스에 대해 참조로 "하위" "것들"을 가져와야합니다. (잘못된 명명에 대해 유감스럽게 생각합니다) –