gpt4 book ai didi

c++ - 如何将字符串与 const char* 进行比较?

转载 作者:IT老高 更新时间:2023-10-28 23:09:34 36 4
gpt4 key购买 nike

#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;
}

我被卡住了。

最佳答案

std::string 实例可以使用 !=== 运算符直接与字符串文字进行比较。这使您的比较更加清晰。

请注意,\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;
}

关于c++ - 如何将字符串与 const char* 进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2931704/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com