C 上的 char 和字符串赋值问题(没有转换的指针的整数?)
Issues with char and string assignments on C (integer from pointer without a cast?)
我在我的代码中做了以下声明:
char bussola, com[1], pen;
int main()
{
bussola = "oeste", pen = "up";
但出于某种原因,我在编译器上遇到了这个错误:
main.c:18:10: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
bussola = "oeste", pen = "up";
^ ^
因此,我不断收到类似这样的其他错误:
main.c:51:17: warning: comparison between pointer and integer
if (bussola == "oeste")
^~
我该怎么办?
您正在将 char 数组(也称为字符串)分配给 char 变量,它们不是兼容的数据类型。
char 变量只能有单个 char 值(如 'a' 、'F'、'2' 或 ' ')。使用单引号 (' ') 将字符解释为 char 变量很重要。
您可以使用 char * bussola 或 char bussola[LENGTH] 声明一个字符串,但您必须在声明中初始化数组:
char bussola[6] = "oeste";
如果以后想初始化,可以用strcpy:
char bussola[6];
strncpy(bussola, "oeste", 6);
请注意,字符串使用双引号 (" ") 而不是像字符那样的单引号。
char bussola[6], pen[3];
int main() {
strcpy(bussola, "oeste");
strcpy(pen, "up");
}
if(!strcmp(bussola,"oeste")
以上是您要执行的操作的正确语法。
考虑到这段代码,我建议深入了解 C 中的字符串和字符概念以及 string.h
头文件函数。
我在我的代码中做了以下声明:
char bussola, com[1], pen;
int main()
{
bussola = "oeste", pen = "up";
但出于某种原因,我在编译器上遇到了这个错误:
main.c:18:10: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
bussola = "oeste", pen = "up";
^ ^
因此,我不断收到类似这样的其他错误:
main.c:51:17: warning: comparison between pointer and integer
if (bussola == "oeste")
^~
我该怎么办?
您正在将 char 数组(也称为字符串)分配给 char 变量,它们不是兼容的数据类型。 char 变量只能有单个 char 值(如 'a' 、'F'、'2' 或 ' ')。使用单引号 (' ') 将字符解释为 char 变量很重要。 您可以使用 char * bussola 或 char bussola[LENGTH] 声明一个字符串,但您必须在声明中初始化数组:
char bussola[6] = "oeste";
如果以后想初始化,可以用strcpy:
char bussola[6];
strncpy(bussola, "oeste", 6);
请注意,字符串使用双引号 (" ") 而不是像字符那样的单引号。
char bussola[6], pen[3];
int main() {
strcpy(bussola, "oeste");
strcpy(pen, "up");
}
if(!strcmp(bussola,"oeste")
以上是您要执行的操作的正确语法。
考虑到这段代码,我建议深入了解 C 中的字符串和字符概念以及 string.h
头文件函数。