我写了以下代码:
#include <string>
std::string fakeBin(std::string str){
for (int i = 0; i < str.length(); i++){
str[i] = ((str[i] - '0') > 4) ? '1' : '0';
}
return str;
}
它完成了它的工作,但我在写作时遇到了一个问题,这变得很有趣。如果? '1' : '0'用双引号替换引号,代码将停止工作。这是什么原因?C++ 中的单引号和双引号有什么区别?
""并''表示不同类型的数据有一种类型
char,它存储一些单字节数字在 C 和 C++ 中有
''一个指定的符号,我重复符号,不是符号,将被解释为相应的数字char解释的类型将是
const char例如:
有一种类型
const char *,这是一个指向数组(通常称为字符串)的指针,或者更准确地说,它是指向
const char该字符串的第一个字符(类型)的指针。当我们写时
"",这样的字符串通常被称为字符串文字与字符串交互时(例如:使用函数),我们按顺序读取字符,直到遇到特殊字符
\0(空字符)另外,当我们使用时
"",最后它会自动出现\0当使用字符串文字时,它将嵌入到可执行文件中。
例如:
有什么问题?
str[i]有一个类型char,当你使用它时"",它有一个类型const char *无法从类型转换
const char *到类型,这就是发生错误的原因char符号
'A'占用1 个字节,字符串占用2 个字节(这是一个 2 字节的字段,包括符号本身和二进制零- 字符串的结束符号):"A"А\0您的命令
str[i] = ...需要右侧有 1 个字符,而不是字符串。