c++ - 将 char 与 const char * 进行比较

标签 c++

<分区>

string line = "blerdy blah";
for (int i = 0; i < string.size(); i++)
{

    line[i] != "n";
}

有了这个我得到错误“无法从 char 转换为 const char *”

如果我将最后一行替换为

line[i] != *"n";

它有效。我明白为什么在某种意义上,我要取消对指针的引用。我不明白的是为什么它首先是一个指针。任何这样写的字符实际上是指向某处一个字符的指针吗?就像程序在某处有一组每个符号,这就是我所指的?

如果是这种情况,我是否可以做一些愚蠢的事情,比如让“n”指针指向其他东西?

最佳答案

在这种情况下,您必须将 charchar 进行比较:

line[i] != 'n';

当你说 *"n" 时,你实际上取消引用了 char 数组的第一个元素,其中包含 n\0 元素,它给你 n,这就是它工作的原因,但你不想那样写。

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

相关文章:

c++ - 如何检查将 free() 与 new [] 一起使用的后果

c++ - 从键盘向列表添加项目

c++ - 通过调整窗口大小或移动窗口,使用第二个线程快速更新 GUI 窗口会崩溃

c++ - 内存效率 - 循环中的 Eigen::VectorXd

c++ - 尝试使用 fstream 打开文件但它不起作用

c++ - 获取 Cstrings 的控制台输入

当不确定类型是什么时,C++ cast void*

c++ - std::getline() 返回

C++ : Deleting records from binary file

c++ - 使用 std::smatch 作为返回类型将导致匹配器变为 "\000\000\000\000\000\000\000"