比较c++中的两个字符串
Compare two strings in 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
并比较,但这已经被问到并回答了:如何将CString和::std::string::std::wstring相互转换?
另一个可能的解决方案,已经具有所有转换:
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;
}
}
相关文章:
- 两个字符串在 c++ 中不相等
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 比较两个字符串后卡在无限循环中
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使用XOR查找O(n)-解决方案中的两个字符串是否为变位符
- 如何将两个字符串加在一起,就好像它们是变量一样?
- 我需要帮助在一个类中输入两个字符串并获取其输出
- 两个字符串之间的数学运算
- sscanf() 有两个字符串参数
- 我的字符串数组一次打印出前两个字符串
- 两个 c++ 字符串上的异或
- 函数返回两个字符串的第一个常用字符
- 目标是找到两个 c 字符串之间的公共前缀(必须使用特定的函数标头)
- 我需要在C++的两个字符串之间找到共同的前缀
- 我有一个返回字符串向量的函数.它需要两个字符串,并且返回一个字符串中缺少的字符串
- 给定两个字符串 S 和 T.确定与 T 相差最小的 S 子字符串?
- gtest:检查字符串是否等于两个字符串之一
- 交换两个字符串时访问正确的内存时,我遇到了分段错误
- 我可以在系统()中使用两个字符串吗?