2014-02-14 3 views
0

문자열을 제어하고 문자열에서 문자를 가져 오는 방법을 알고 싶습니다.
문자열의 각 문자를 표시하는 루프 | C++

#include <iostream> 
#include <string> 

using namespace std; 

int mainMenu(); 

int main() { 
    mainMenu(); 
} 

int mainMenu(){ 
    string introText = "Welcome... Let me know your name!"; 
    cout << "\t\t\t"; 
    for (int i = 0; i <= introText.length(); i++){ 
     unsigned controller = i + 1; 
     cout <<introText.substr(i,controller); 
    } 
} 


이 출력 다음과 같습니다 :

Wellcocomeome..me... e... Le... Let .. Let me. Let me k Let me knoLet me know et me know yot me know your me know your nme know your name know your name! know your name!know your name!now your name!ow your name!w your name! your name!your name!our name!ur name!r name! name!name!ame!me!e!! 


으로 오른쪽 방향은 무엇입니까
여기 내 코드입니까? 이 문제를 어떻게 해결할 수 있습니까?

+1

왜 SUBSTR? 왜 그냥 introText [i]를 사용하지 않는가? – PomfCaster

+0

기대하시는 결과를 말씀해 주시겠습니까? – michaeltang

+3

아마도'substr'의 두 번째 매개 변수는 하위 문자열에 포함 할 문자의 수이고 하위 문자열을 가져올 때까지 상위 색인이 아닌 * 문자라는 사실에 대해 혼란 스러울 것입니다. http://www.cplusplus.com/reference/string/string/substr/ – halex

답변

1

는 문자열의 일부를 추출하기 위해 사용되는 사용하여 출력한다. 당신은 문자열의 각 문자를 인쇄 할 경우, 당신은 단지 std::basic_string::operator[] 또는 std::basic_string::at를 사용할 수 있습니다

for (int i = 0; i < introText.length(); i++){ 
    cout <<introText[i]; // or cout <<introText.at(i); 
} 
1
#include <iostream> 
#include <string> 

using namespace std; 

int mainMenu(); 

int main() { 
    mainMenu(); 
} 

int mainMenu(){ 
    string introText = "Welcome... Let me know your name!"; 
    cout << "\t\t\t"; 
    for (int i = 0; i < introText.length(); i++){ 
     //unsigned controller = i + 1; 
     //cout <<introText.substr(i,controller); 
     cout << introText[i]; 
    } 
     cout << endl; 
} 

   Welcome... Let me know your name! 

그냥 introText[i]

std::basic_string::substr
0
int mainMenu(){ 
string introText = "Welcome... Let me know your name!"; 
cout << "\t\t\t"; 
for (int i = 0; i < introText.length(); i++){ 

    cout << introText[i]; 
} 
    cout << endl; 

}

관련 문제