문장을 수락하기 위해 std::string
유형을 사용합니다. 연습을 위해 (C++의 문자열로 많은 작업을하지 못했습니다.) 저는 문자가 모음인지 아닌지 확인하고 있습니다. 나는이있어 :C++ : 읽을 때 항상 공백이 문자열을 종료합니까?
for(i = 0; i <= analyse.length(); i++) {
if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) {
...vowels++;
} else { ...
...consonants++;
}
문자열이 모두 한 단어 인 경우이 잘 작동하지만, 두 번째는 내가 공백을 추가 (IE : aeio aatest)는 첫 번째 블록을 계산하고, 같은 공간을 계산합니다 자음, 그리고 문장을 읽는 것을 중단합니다 (for 루프 나 다른 것을 빠져 나옵니다).
공백이없는 문자 == null로 계산합니까? 또는 std::string
과 같은 이상한 점이 있다면, 그 이유를 아는 것이 도움이 될 것입니다.
편집 : 단순히 표준 : CIN를 통해 문자열을 수용하고있어, 같은 :
std::string analyse = "";
std::cin >> analyse;
std :: string이 아니며 공백과 null을 포함하여 모든 문자를 포함 할 수 있습니다. 문자열을 읽는 방법을 보여줍니다. –
'analyse'는 어떻게 설정하나요? 'cout << analyse.length()'라고하면 어떻게 될까요? "aecio"문자열이 올바르게 계산됩니까? 어쩌면 문제는 else 블록의'... '부분에있을 것인가? –
한쪽에 .. 변수에 길이를 저장하십시오 (const int ci = analyse.length();) for 함수는 나쁜 습관입니다. – baash05