string - 有没有办法在 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 退出。
解决方案
变量是否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
方法有一些有趣的变化,您应该在此处查看参考。
推荐阅读
- arrays - 使用节点 js 将嵌套的 json 值推送到数组
- r - 用于连接到 Azure Devops 的 R 脚本,将来自 Azure Devops 的数据与其他资源拉取、转换和合并到 Power BI
- javascript - java 脚本:如何读取 html 文件并将其内容加载到 div
- serverless-framework - 无服务器打包问题
- python - Python自动化:文件管理器
- google-cloud-platform - 删除数据流作业和最大作业数
- python - 努力寻找一种方法让 Tkinter Listbox 有一个删除数组中相应项目的按钮
- python - 如何在使用 zip() 从列表中构建的 pandas-Dataframe 中获取第二个标头
- java - 我想从动态 webtable 列中获取所有链接,然后单击 Selenium 中的每个链接
- sql-server - 负值和正值匹配和更新