【问题标题】:Having trouble comparing index of a list to a string [closed]将列表的索引与字符串进行比较时遇到问题[关闭]
【发布时间】:2020-08-24 22:16:45
【问题描述】:

所以我有一个字符串列表,看起来像这样-

..A...C..C.
.....A.....

我基本上是在尝试检查某个索引处是否有“。”或一封信。然而。每当我尝试类似

if(array[row][column] == ".")
{
  return true;
}

我收到一条错误消息,说我无法比较指针和整数(我想这是因为列表是指针,但“.”是整数..?) 我尝试将数组索引转换为字符串,但是当它比较时,它总是返回 false。

【问题讨论】:

  • array 的类型是什么?您可能需要array[row][column] == '.'(单引号而不是双引号)。
  • 将数组 element 而不是数组 index 转换为字符串也应该可以:std::string(1, array[row][column]) == "."

标签: c++ arrays pointers string-comparison


【解决方案1】:

您正在寻找:

if(array[row][column] == '.')

如果要将数组元素与char 进行比较,则需要使用' 而不是"

关于比较指针和整数的错误来自以下事实:"." 是一个字符串文字,其类型为 const char [2],它衰减为 const char*,而 array[row][column] 是单个 char,它被处理像一个整数。

【讨论】:

  • 严格来说,你不需要使用',因为你可以像if(array[row][column] == "."[0])这样访问数组的元素(使用'更容易,更简单,和通常的方式)
  • 将其更改为字符而不是字符串效果很好,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
相关资源
最近更新 更多