如何比较字符串和const char*?

2023-12-24

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
        string cmd;
        while(strcmp(cmd.c_str(),"exit")==0 && strcmp(cmd.c_str(),"\exit")==0)
        {
                cin>>cmd;
                cout<<cmd;
        }
        return 0;
}

我被困住了。


A std::string可以使用实例直接与字符串文字进行比较!= or ==运营商。这会让你的比较更加清晰。

注意\e不是有效的字符转义,您需要将\如果你的意思是字面意思\\.

while( cmd == "exit" && cmd == "\\exit" )

明显地cmd不能同时等于两个不同的字符串,大概你的意思是!=.

另外,还要考虑是否std::getline( std::cin, cmd )比更合适std::cin >> cmd;。在任何一种情况下,您都应该检查读取操作是否成功,否则如果流关闭或进入失败状态,您可能会陷入无限循环。

就我个人而言,我会采用类似的方法,假设您想像代码一样回显退出命令。

#include <string>
#include <iostream>
#include <ostream>

int main()
{
    std::string cmd;
    while (std::getline(std::cin, cmd))
    {
        std::cout << cmd << std::endl;
        if (cmd == "exit" || cmd == "\\exit")
            break;
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何比较字符串和const char*? 的相关文章

随机推荐