【问题标题】:Is there a way to compare char and string in c++?有没有办法在 C++ 中比较字符和字符串?
【发布时间】:2020-03-01 07:36:33
【问题描述】:

我目前正在学习 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 退出。

【问题讨论】:

    标签: string c++11 char compare


    【解决方案1】:

    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 方法有一些有趣的变化,您应该检查the reference here

    【讨论】:

    • 是的,它必须是字符。我正在使用 ofstream 将该数组写入文本。
    • 您可以从 std::string 中提取 c 风格的字符串,而且您绝对不必使用 char 数组来使用 ofstream。请在您的问题中提供更多详细信息。
    • @BrunoMacedo - 使用 std::strings 您不需要任何额外的比较函数,只需使用 == 运算符重载。当然,很高兴知道还有一个专用功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多