【发布时间】:2017-09-20 09:18:41
【问题描述】:
我无法理解如何输出字符串的倒数,然后存储倒数并将其应用于字符串变量以稍后打印字符串。根据程序的结构,我收到的一些错误包括:正在打印随机字符,仅打印字符串输入,程序崩溃...程序必须能够处理此菜单:
在某一时刻,我有反向工作,但是当我添加例如 if(choice == '2') 并创建反向函数时,它会再次开始起作用。
这是我现在拥有的:
int main()
{
string userString = "";
int i = 0;
char choice;
char invChar = char(userString[i]);
userString = invChar;
cout << "Please enter a word, a sentence, or a string of numbers." << endl;
getline(cin, userString);
do
{
cout << "\nUSE THIS MENU TO MAINPULATE YOUR STRING\n"
<< "----------------------------------------" << endl;
cout << "1) Inverse String\n"
<< "2) Reverse String\n"
<< "3) To Uppercase\n"
<< "4) Count Number Words\n"
<< "5) Count Consonants\n"
<< "6) Enter a Different String\n"
<< "7) Print the String\n"
<< "Q) Quit" << endl;
cin >> choice;
cin.ignore();
if (choice == '1')
{
for (int i = 0; i <= userString.length(); ++i)
{
if (isupper(userString[i]))
{
char(tolower(userString[i])); // if uppercase - converts to lower - if upper keeps value
invChar += userString[i];
}
userString = invChar;
}
cout << userString;
}
} while (choice != 'q' || choice != 'Q');
提前感谢您提供的任何提示和技巧!
【问题讨论】:
-
invChar += userString[i]; userString = invChar;可能是错误的行
-
为什么不干脆写一个函数来做每一个操作,然后调用这个函数而不是把整个程序塞进
main()? -
另外,
for循环中有内存覆盖。