-3
我在教自己C,我在运行程序时似乎得到了不正确的输出。我总是得到“他们是平等的”,即使他们都没有,还返回值似乎只能打印无论是输入的第一个字,我怎么能解决这个问题?:如果陈述语句无效?
#include <stdio.h>
char var[0];
char var2[0];
int main(void) {
printf("Enter Var 1=> ");
scanf("%s", &var);
printf(var);
printf("\n");
printf("Enter Var 2=> ");
scanf("%s", &var2);
printf(var2);
printf("\n");
if (var == var2)
printf("They are equal");
else
printf("They Are not equal");
}
'strcmp'在这里更适合...'的#include ......如果(STRCMP(VAR,VAR2)== 0){...}' –
你'var'和'var2'缓冲区是零长度的数组('[0]'),所以你对'scanf'的使用正在写入未分配的内存,并遇到未定义的行为。 – Dai
'char var [0]; 0;; varchar [32]; char var2 [32];'...'scanf(“%31s”,var);'...。还有'printf(var); printf(“\ n”);' - >'printf(“%s \ n”,var);'或'puts(var);' – BLUEPIXY