-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