爲了方便起見,我試圖製作一個不區分大小寫的基本用戶界面。爲此,我創建了一個轉換器類,使字符串大寫,但我偶然發現了一個問題。在使用該類之後,main()中的if語句應該解釋來自轉換器的消息,但它只讀取原始輸入的內容,而不是大寫的對應內容,並且我試圖直接從轉換器,但它不會讓我。在C++中返回一個字符串變量
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string response;
//converts responses to upper-case
void convert(string response) {
for (int i = 0; i < response.length(); i++) {
response[i] = toupper(response[i]);
}
}
//main dialogue
int main() {
cout << "How are you?: ";
getline(cin, response);
convert(response);
if (response == "GOOD") {
cout << "Response 1./l";
}
else {
cout << "Response 2./l";
}
}
我很新的C++,所以我道歉,如果這個錯誤是一個容易解決,或者我很難理解的解決方案。
@ John3136關於儘可能避免複製的好處。 – NoseKnowsAll
我不知道類可以被識別爲字符串,這可能會解決我的問題。最後,我把getline(cin,response);在轉換器本身,只要我需要響應就叫轉換器。 – Zyxlm
'我不知道類可以被識別爲字符串'這是什麼意思?現在你有了修改的輸入 - 那就是軟件工程。這裏介紹了幾種可行的解決方案,但是你忽略了它們全部? – John3136