C++ if语句中识别为9的8个字符
我想做一个if语句,看看这个名字是否等于一个特定的单词。该名称只有8个字符长,因此我只能将其与8个或更少字符的单词进行比较 但我遇到的问题是,如果我比较这两个值,我会得到这个错误: “正在初始化”:无法从“初始值设定项列表”转换为 'std::array' 当我从字符串中删除一个字母时,我想将它与它进行比较,但它不再给出错误。但为什么VisualStudio认为只有9个字符,而只有8个字符,这对我来说似乎没有意义。我以前使用比较来检查只有4个字符的字符串,这似乎很好C++ if语句中识别为9的8个字符,c++,arrays,if-statement,character,C++,Arrays,If Statement,Character,我想做一个if语句,看看这个名字是否等于一个特定的单词。该名称只有8个字符长,因此我只能将其与8个或更少字符的单词进行比较 但我遇到的问题是,如果我比较这两个值,我会得到这个错误: “正在初始化”:无法从“初始值设定项列表”转换为 'std::array' 当我从字符串中删除一个字母时,我想将它与它进行比较,但它不再给出错误。但为什么VisualStudio认为只有9个字符,而只有8个字符,这对我来说似乎没有意义。我以前使用比较来检查只有4个字符的字符串,这似乎很好 if (lumps[i +
if (lumps[i + h].name == TFixedString<8>{"LINEDEFS"})
{
}
if(lumps[i+h].name==TFixedString{“LINEDEFS”})
{
}
所有数组都从0开始,所以如果你有一个8的数组,它实际上是9。这看起来像是c++
或者基于错误消息的东西,而不是c
。什么是TFixedString
定义的?而将[i+h]集为一块。name
,这是std::string吗?@user3678781类型对您来说无关紧要?“LINEDEFS”
实际上包含8个字符加上终止的“\0”
字符。因此9。嗯,当我想要比较的名字似乎是9个字符时,我怎么能比较呢?我意识到我把C代替C++,我的错是什么?编号inta[10]代码>提供10个元素,索引范围从0到9。我的意思是,如果你有一个5的数组,你想打印出一个名称,比如“James”,它只会打印出“Jame”,因为空终止符需要在array@ProgStudent如果你是那个意思,那就是你应该说的。