我寫了一個小型的c程序,顯示輸入的文本,如果輸入的文本是「顯示版本」,則顯示版本。 以下是示例代碼Strcmp和getchar
#include<stdio.h>
#include<string.h>
void main(){
int i;
char j = (char) i;
while(i != '#'){
i = getchar();
if(strcmp(&j, "show version")) printf("v1");
else putchar(i);
}}
它爲每個char + 1打印v1。 任何建議。
'j'的值是未知的......當您設置'i'時,它不會被修改,因爲您在更改'i'後不會將'i'分配給'j'。另外,'strcmp()'期望空終止的字符串...指向單個(可能)非空'char'的指針是不夠的 - 它將繼續讀取該單個字符直到它找到空字符或已經存在確定字符串不匹配。換句話說,你有很多未定義的行爲,似乎對語言的工作方式有一些誤解。 (並且這些不是代碼的唯一問題) – Dmitri