-1
我問這個早些時候here爲什麼我使用strcpy()函數時輸出空並且不爲空?
這個問題之前就已經完成了,但我用strcpy()
功能時仍然混淆,沒有輸出。
此代碼段:
void push(char* nm, char* np, char* tel) {
if(stackMhsbaru.size != 10) {
stackMhsbaru.nama[stackMhsbaru.size + 1] = nm;
stackMhsbaru.npm[stackMhsbaru.size + 1] = np;
stackMhsbaru.telp[stackMhsbaru.size + 1] = tel;
stackMhsbaru.size++;
}
}
上述代碼時編譯正常,沒有錯誤,則輸出是:
---------------------------
nama = Febri
npm = 067015021
telp = 08877
---------------------------
我與改變:
void push(char* nm, char* np, char* tel) {
if(stackMhsbaru.size != 10) {
if(!nm)strcpy(stackMhsbaru.nama[stackMhsbaru.size + 1],nm);
if(!np)strcpy(stackMhsbaru.npm[stackMhsbaru.size + 1],np);
if(!tel)strcpy(stackMhsbaru.telp[stackMhsbaru.size + 1],tel);
stackMhsbaru.size++;
}
}
上面的代碼當編譯正常時,沒有錯誤但輸出是:
---------------------------
nama =
npm =
telp =
---------------------------
爲什麼?沒有人能解釋?
刪除那些塊中的'!'s –
請記住,C語言允許使用空格來使程序可讀。 'if(!nm)strcpy(stackMhsbaru.nama [stackMhsbaru.size + 1],nm);'比較難讀。 –