我對編程完全陌生。如果語句帶字符串
我只需要輸入戴夫的話,就應顯示「有一個愉快的一天」
所以我把它寫在這樣:
{
char str[100];
printf("\nwhat is your name?\n");
scanf("%s",str);
if (str="Dave")
{
printf("\nhave a nice day\n");
}
}
最終,它說明不了什麼。它出什麼問題了?
我對編程完全陌生。如果語句帶字符串
我只需要輸入戴夫的話,就應顯示「有一個愉快的一天」
所以我把它寫在這樣:
{
char str[100];
printf("\nwhat is your name?\n");
scanf("%s",str);
if (str="Dave")
{
printf("\nhave a nice day\n");
}
}
最終,它說明不了什麼。它出什麼問題了?
您的代碼分配str
指向字符串字面"Dave"
。我想你的意思是比較(使用==
)呢?這也會失敗,比較兩個char
陣列的地址。在C語言中,你應該使用strcmp比較字符串
if (strcmp(str, "Dave") == 0)
字符串比較可以通過strcmp()
從#include <string.h>
if (strcmp(str,"Dave")==0)
{
printf("\nhave a nice day\n");
}
字符串比較來實現需要的庫函數。更換
if (str="Dave")
與
if(strcmp(str, "Dave") == 0)
,並在年初,包括
#include<string.h>
'#include
#include
首先,你指定你不比較(=的==代替),第二你不能比較==操作符字符串(對於指針你比較地址,而不是內容) – 2013-03-07 08:26:13
@ShashankKadne沒有,他不 – SomeWittyUsername 2013-03-07 08:26:39
@Dugarry我會強烈建議你學會如何陣列的指針工作,ATT之前使用字符串處理,因爲C中的字符串處理嚴重依賴於數組和指針。 (爲什麼C可能不適合初學程序員的理由之一,就我個人而言,我會推薦Java作爲第一編程語言) – Lundin 2013-03-07 08:29:59