判断两个std::string相等
时间: 2023-11-17 15:04:26 浏览: 282
要判断两个std::string对象是否相等,可以使用比较运算符"=="。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = "Hello";
if (str1 == str2) {
std::cout << "str1和str2相等" << std::endl;
} else {
std::cout << "str1和str2不相等" << std::endl;
}
return 0;
}
```
在这个示例中,我们使用"=="运算符比较了str1和str2的值是否相等。如果相等,则输出"str1和str2相等";否则,输出"str1和str2不相等"。
相关问题
std::string判断相等
在C++标准库中,你可以使用`==`运算符来比较`std::string`对象是否相等。这个运算符会逐字符地比较两个字符串的内容,如果所有字符都匹配,则返回`true`;否则返回`false`。这是一个基本的例子:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
if (str1 == str2) {
std::cout << "The strings are equal.\n";
} else {
std::cout << "The strings are not equal.\n";
}
return 0;
}
```
在这个例子中,由于`str1`和`str2`的内容不同,程序将输出"The strings are not equal."。
如果你关心的是大小写敏感还是不敏感的比较,你可以先将它们转为统一的格式再进行比较,可以使用`std::transform`和`std::tolower`(对于ASCII字符)或`std::wstring_convert`和`std::to_wchar_t`(对于宽字符)等工具。
#include <iostream> #include <string> std::string solution(std::string words, std::string msg){ std::string result; // TODO: int tStrLenW = strlen(words); int tStrLenM = strlen(msg); int tWordsFlag = 0; int tMsgFlag = 0; char* pCharText = nullptr; while(tStrLenW > tWordsFlag && tStrLenM > tMsgFlag) { if(words[tWordsFlag] == msg[tMsgFlag]) { strcat(pCharText, &msg[tMsgFlag]); tMsgFlag++; } else { tWordsFlag++; tMsgFlag = 0; } } if(strcasecmp(pCharText, msg) == 0) result =“Yes”; else result =“No”; return result; } int main() { std::string words; std::string msg; getline(std::cin, words);; getline(std::cin, msg);; std::string result = solution(words, msg); std::cout<<result<<std::endl; return 0; }
这段代码的功能是比较两个字符串是否匹配。如果匹配,返回字符串"Yes",否则返回字符串"No"。
函数`solution`的输入参数是两个字符串`words`和`msg`,输出参数是一个字符串`result`。函数首先定义了一个空字符串`result`,然后通过循环比较两个字符串的每个字符。每次比较时,如果两个字符相等,则将`msg`字符串中的这个字符拼接到一个新的字符数组`pCharText`的末尾,并将`tMsgFlag`加1。如果两个字符不相等,则将`tWordsFlag`加1,重新开始比较。最后,如果`pCharText`和`msg`相等,则将`result`设置为"Yes",否则将`result`设置为"No"。
然而,这段代码存在一些问题。首先,`pCharText`指针没有初始化,如果直接使用`strcat`函数将`msg`拼接到`pCharText`的末尾,会导致未定义的行为。应该先为`pCharText`分配足够的内存空间,然后再进行拼接操作。其次,代码中使用了`strcasecmp`函数比较字符串,但是在代码中未包含头文件`<strings.h>`,导致编译时会出现错误。
阅读全文