→ hsnuyi: 標題寫字串 內文寫字元 到底是字串還是字元? 05/13 20:52
→ hsnuyi: 字元直接 c - 'A' 不就好了 05/13 20:54
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:41:27
標題有錯,已經改正。我有那樣試過,但編譯器還是會跑出不相關的數字,還是是因為
編譯器的問題(我用xcode)?謝謝
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:42:58
推 Schottky: 因為你寫錯了。為什麼自己錯都要第一個怪編譯器 XDDDD 05/13 21:53
痾 我只是想說會不會是那樣的問題,小弟C新手,還請S大賜教,謝謝。
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:57:44
→ Lipraxde: 那你附個 code 啊 05/13 22:07
int sti(char word){
int value=(int)word;
if(value>=97){
value-=51;
}
else{
value-=65;
}
return value;
};
void main(void){
char a;
scanf("%c", &a);
printf("%c=%d", a, sti(a));
return 0;
}
如果輸入是大A,輸出會變成
A=0
=-55
※ 編輯: Holffman (111.251.141.96), 05/13/2019 22:19:47
推 b0920075: char也是數值直接比較就好了,你幹嘛轉成int再比較 05/13 22:26
了解,但這樣他是不是會比較兩次,假設輸入A,他會計算A和\0,如果是這樣,有沒有辦
法只讓他計算A的值。謝謝。
※ 編輯: Holffman (111.251.141.96), 05/13/2019 22:35:09
→ Lipraxde: 跟 '\0' 有啥干係? 05/13 22:50
→ idiont: 你給的輸出應該不是用你給的程式碼跑出來的結果吧 05/13 22:55
→ idiont: 猜測一下 你大概是用迴圈去讀 然後印出來吧 05/13 22:55
→ idiont: 換行字元(ASCII編碼為10)留在buffer中被讀到 10-65=-55 05/13 22:56
→ idiont: 使用%s讀字串才會有所謂的'\0' 他的ASCII編碼是0 05/13 22:57
→ idiont: main function的return type也應該是int 05/13 22:58
推 b0920075: 一個char就放一個byte,你的null byte從哪裡來的? 05/14 01:58
推 caras: 你貼的這段 code 必定沒有你說的問題 XD 05/14 04:13
→ caras: 別搞我們了,把真正出問題的 code 貼出來 05/14 04:13
→ caras: 別叫我們通靈,上次通靈王大戰搞到生靈塗炭 XD 05/14 04:15
→ MOONRAKER: 水晶球,顯出… 05/14 12:16
→ Holffman: 抱歉造成大家的困擾,我的確有用for loop 圖片中是原始 05/14 13:09
→ Holffman: 程式碼與編譯出的結果 謝謝大家 05/14 13:09
→ RishYang: value=-51有什麼用途,純粹好奇 05/14 14:18
→ Holffman: 我想要拿array來儲存輸入的字元,然後那個function是要 05/14 14:46
→ Holffman: 用來產生正確index用的(輸入只會有26個英文字母的大小 05/14 14:46
→ Holffman: 寫) 05/14 14:46
推 Gway: C的scanf老問題 可以google看一下 如有餘力請順道看一下如 05/15 17:01
→ Gway: 何scanf 讀取含空白的string 不然我猜你之後會再上來問類似 05/15 17:01
→ Gway: 的問題 05/15 17:01