首页 > 解决方案 > 有没有办法在 C++ 中比较字符和字符串?

问题描述

我目前正在学习 C++ 中的文件处理。我想检查用户一开始输入的用户名是否与他最后输入的用于写入 TXT 文件的用户名相同。

我尝试运行一个循环并将索引 [0] 处的 char 数组与字符串索引 [0] 进行比较。

代码说明:getuser - 开头输入的用户名(字符串)

user - 现在输入的用户名(字符数组)

char user[16];
for(int i = 0; i < getUser.length(); i++){
    if(!(user[i] == getUser[i])){
        cout << "enter right username!";
        exit(1);
    }
}

我希望循环检查每个字符,如果正确,它将继续,否则它将打印一条错误消息并返回 1 退出。

标签: stringc++11charcompare

解决方案


变量是否user必须是 char 数组?如果不是,您可以使用std::string类型和std::string::compare方法。0如果字符串匹配,则返回。

std::string firstUser ("foo");
std::string secondUser ("bar");

if (firstUser.compare(secondUser) != 0) std::cout << "enter right username!";
else std::cout << "well done!";

compare方法有一些有趣的变化,您应该在此处查看参考


推荐阅读