在C语言中使用字符常量
我正试图写一个程序,但在给变量赋值时遇到了一些问题。给我带来问题的部分是这段简单的代码:在C语言中使用字符常量,c,C,我正试图写一个程序,但在给变量赋值时遇到了一些问题。给我带来问题的部分是这段简单的代码: char x; if (friction > fN || friction < -fN) { x = 'false'; printf("\%s\n", x); } else { x = 'true'; printf("\n%s\n", x); } fprintf(Output,"%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf, %s\n"
char x;
if (friction > fN || friction < -fN) {
x = 'false';
printf("\%s\n", x);
}
else {
x = 'true';
printf("\n%s\n", x);
}
fprintf(Output,"%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf, %s\n", theta, theta_rad, V, Fa, Uc, Vc, moment, fN, friction, x);
注意:fprintf
中的其余参数打印得很好,问题只在于如何声明字符。最后,它根本不打印x“值”
提前谢谢你,谢谢你的帮助
char
仅存储一个字符。您需要声明一个字符数组(通常称为字符串),并使用string.h
函数(即)复制和存储字符串
还要注意,字符串用双引号括起来,而不是单引号
将#包括和标题:
char x[255];
if (friction > fN || friction < -fN) {
strcpy(x, "false");
printf("\%s\n", x);
}
else {
strcpy(x, "true");
printf("\n%s\n", x);
}
fprintf(Output,"%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf, %s\n", theta, theta_rad, V, Fa, Uc, Vc, moment, fN, friction, x);
charx[255];
如果(摩擦力>fN | |摩擦力<-fN){
strcpy(x,“假”);
printf(“\%s\n”,x);
}
否则{
strcpy(x,“真实”);
printf(“\n%s\n”,x);
}
fprintf(输出,“%lf、%lf、%lf、%lf、%lf、%lf、%lf、%lf、%s\n”、θ、θ、弧度、V、Fa、Uc、Vc、力矩、fN、摩擦力、x);
当然,如果以后不使用x
变量,您可能只想直接打印“true”
和“false”
字符串。char
只存储一个字符。您需要声明一个字符数组(通常称为字符串),并使用string.h
函数(即)复制和存储字符串
还要注意,字符串用双引号括起来,而不是单引号
将#包括和标题:
char x[255];
if (friction > fN || friction < -fN) {
strcpy(x, "false");
printf("\%s\n", x);
}
else {
strcpy(x, "true");
printf("\n%s\n", x);
}
fprintf(Output,"%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf, %s\n", theta, theta_rad, V, Fa, Uc, Vc, moment, fN, friction, x);
charx[255];
如果(摩擦力>fN | |摩擦力<-fN){
strcpy(x,“假”);
printf(“\%s\n”,x);
}
否则{
strcpy(x,“真实”);
printf(“\n%s\n”,x);
}
fprintf(输出,“%lf、%lf、%lf、%lf、%lf、%lf、%lf、%lf、%s\n”、θ、θ、弧度、V、Fa、Uc、Vc、力矩、fN、摩擦力、x);
当然,如果以后不使用x
变量,您可能只想直接打印“true”
和“false”
字符串。字符仅用于单个字符。您将需要对多个字符使用字符串
char * x = "false"; /*double quotes*/
printf("%s\n", x);
也就是说,如果只想表示true和false,最好分别使用整数1
和0
,因为这样可以将它们传递给if语句和其他条件 字符仅用于单个字符。您将需要对多个字符使用字符串
char * x = "false"; /*double quotes*/
printf("%s\n", x);
也就是说,如果只想表示true和false,最好分别使用整数1
和0
,因为这样可以将它们传递给if语句和其他条件 char
类型用于存储单个字符,但您试图定义多个字符的常量。如果需要一个字符序列,则使用引号(“
)和常量字符*
字符类型用于存储单个字符,但您试图定义多个字符的常量。如果需要一个字符序列,则使用引号(”
)和常量字符*
正如其他用户所指出的,char只能存储一个字符(如名称所示)。您尝试执行的另一种代码是:
if (friction > fN || friction < -fN) {
printf("false\n");
}
else {
printf("true\n");
}
if(摩擦力>fN |摩擦力<-fN){
printf(“假”);
}
否则{
printf(“true\n”);
}
正如其他用户所指出的,char只能存储一个字符(如名称所示)。您尝试执行的另一种代码是:
if (friction > fN || friction < -fN) {
printf("false\n");
}
else {
printf("true\n");
}
if(摩擦力>fN |摩擦力<-fN){
printf(“假”);
}
否则{
printf(“true\n”);
}
您的代码存在的问题是您将x
声明为char
。char
是一种只能存储1个字符的类型。因此,如果您想存储超过1个字符,则需要使用所谓的字符串。字符串可以声明为字符向量。例如,charstr[20]
声明一个包含20个字符的字符串。但是,在您的情况下,最好使用指向常量char的指针(请注意编译器发出的第三个警告),该常量char由char*str=“string content”定义。请注意,双引号(“
)的使用是单引号(”
)的替代。它们之间的区别在于,单引号用于初始化字符,例如charc='a'
。声明字符串时,必须使用双引号,例如char*str=“hello world!”!“
,或char str[]=”你好,世界!“
。当您用双引号声明字符串时,会在字符串末尾添加一个称为字符串终止符的特殊字符('\0'
,请注意,这是一个单字符,因此您在其周围使用单引号)。
以下是您的代码示例:
char* x; // x is declared as a constant string
if (friction > fN || friction < -fN) {
x = "false";
printf("\%s\n", x);
}
else {
x = "true";
printf("\n%s\n", x);
}
char*x;//x被声明为常量字符串
如果(摩擦力>fN | |摩擦力<-fN){
x=“假”;
printf(“\%s\n”,x);
}
否则{
x=“真”;
printf(“\n%s\n”,x);
}
您的代码存在的问题是,您将x
声明为char
。char
是一种只能存储1个字符的类型。因此,如果您想存储多个字符,则需要使用称为字符串的字符串。字符串可以声明为字符向量。例如,char str[20]
声明一个由20个字符组成的字符串。但是,在您的情况下,最好使用一个指向常量char的指针(注意编译器发出的第三个警告),该常量char由char*str=“string content”定义。请注意使用双引号(“
)代替单引号(”
)。它们之间的区别在于,单个引号用于初始化char
,例如charc='a'
。例如,在声明字符串时,必须使用双引号