什么ascii值是c ++字符串的开头?

时间:2018-02-16 23:20:10

标签: c++

所以我知道字符串中的最后一个字符是空字符,前面是什么字符?喜欢string[0-1]处的角色?我尝试cout但它只是空白。我需要知道的原因是if语句检查string[0-1]是否等于该字符。整个程序是一个计算器,我试图处理用户输入错误,如操作符和操作数之间没有空格,问题是有减号-和负数符号-。所以在我的if语句中我有if(string[i] == '-' && string[i-1] != ' '){return false;}但是如果字符串中的第一个数字是负数,则返回false,因此我的困境。

1 个答案:

答案 0 :(得分:1)

  

所以我知道字符串中的最后一个字符是空字符

不,它不是,但由于各种技术原因,C字符串和std::string都会在字符串之后立即放置一个空字符

字符串之前没有这样的东西,因为没有理由。包含表达式string[-1]的程序具有未定义的行为,因为这是字符串中不存在的索引,并且没有特殊情况可以赋予它任何含义。

  

在我的if语句中我有if(string[i] == '-' && string[i-1] != ' '){return false;}

您可以尝试以下内容:

if (string[i] == '-' && (i > 0 && string[i-1] != ' '))

我无法弄清楚你想要的逻辑是什么,所以你必须调整它来做你想做的事。