2014-02-14 84 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'的​​第二个参数是包含在子字符串中的字符的数量以及* not *上面的索引直到子字符串被采用这一事实感到困惑。 http://www.cplusplus.com/reference/string/string/substr/ – halex

回答

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]

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; 

}