我想比較用戶輸入與存儲在字符串數組中的值。我的陣列是比較C++中的兩個字符串
string colours[] = {"Black","Blue","Green","Orange","Red","Yellow"};
用戶輸入被分配到
CString selectedColor;
我怎麼能比較這些值?
我想比較用戶輸入與存儲在字符串數組中的值。我的陣列是比較C++中的兩個字符串
string colours[] = {"Black","Blue","Green","Orange","Red","Yellow"};
用戶輸入被分配到
CString selectedColor;
我怎麼能比較這些值?
我會怎麼做:
#include <iostream>
int main(void)
{
std::string colours[] = {"Black","Blue","Green","Orange","Red","Yellow"};
std::string input;
std::cin >> input;
for(const auto& color : colours) //c++11 loop, you can use a regular loop too
{
if(input == color)
{
std::cout << input << " is a color!" << std::endl;
}
}
}
你也可以轉換CString
爲std::string
,並比較它們或周圍的其他方法轉換std::string
到CString
和比較,但是這已經被問和已經回答:How to convert CString and ::std::string ::std::wstring to each other?
我從組合框中獲取此用戶輸入(下拉列表)。我可以將CString中的combobox輸入類型轉換爲字符串嗎? – KMA
@AlokaKulathilaka是的,你可以,只要按照鏈接或更好的方式,而不是將'colours'數組聲明爲'CString'數組,並且完全避免轉換。免責聲明:我沒有經驗與VC + +(這是我假設你正在使用) –
另一種可能的解決方案,已經與所有的轉換:
std::string colours[] = { "Black", "Blue", "Green", "Orange", "Red", "Yellow" };
CString selectedColor("Blue");
int colours_size = sizeof(colours)/sizeof(colours[0]);
for (int i = 0; i < colours_size; ++i) {
CString comparedColor(colours[i].c_str());
if (selectedColor.Compare(comparedColor) == 0) {
std::cout << "Color found" << std::endl;
}
}
w ^你想知道的帽子? 'colors []'數組中包含'selectedColor'嗎?或者_compare_是什麼意思? – outofmind
爲什麼你不堅持單個字符串類?然後,您可以使用關係運算符來執行您想要的任何操作。 –
selectedColur是爲用戶輸入提供的變量名稱。我想檢查它是否在顏色數組中。 – KMA