我是C ++的新手,并决定更多地了解C ++如何利用套接字。我目前正在关注此tutorial。
我想比较两个字符串。一个字符串是文字test
,另一个字符串是从使用telnet的客户端收到的。但是,条件语句始终求值为false
,随后代码块永远不会执行。我错过了什么?
以下是我遇到问题的代码:
while( (read = recv(sock , client_message , 2000 , 0)) > 0 )
{
std::string a = std::string(client_message);
std::string b = std::string("test");
std::cout << "string a" << a << std::endl;
std::cout << "string b" << b << std::endl;
if (a == "test") {
std::cout << "Strings match!";
}
write(sock , client_message , strlen(client_message));
}
答案 0 :(得分:0)
Telnet将发送CRLF
,这将为您的client_message
数组添加两个额外字节。在比较之前,您需要从该内容中修剪空格。
此外,代码std::string b = std::string("test");
是多余的。只需std::string b = "test";
,或者更好,但最好将其删除,因为您还没有在比较中真正使用它。