[問題] 字串轉數字函數
小弟目前想寫一個字元轉數字的函數f(char),像是f(A)=0,f(B)=1,...,f(Z)=25這
樣,原本是打算用先將字元轉成int後,在使用函數判斷它轉成整數的範圍,然後再做
處理,但卻發現他會輸出兩個函數值(結尾的'\0'也會被計算),想請問各位前輩是否
有方法做到上述函數的功能,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.141.96
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1557751107.A.2FC.html
→
05/13 20:52,
5年前
, 1F
05/13 20:52, 1F
→
05/13 20:54,
5年前
, 2F
05/13 20:54, 2F
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:41:27
標題有錯,已經改正。我有那樣試過,但編譯器還是會跑出不相關的數字,還是是因為
編譯器的問題(我用xcode)?謝謝
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:42:58
推
05/13 21:53,
5年前
, 3F
05/13 21:53, 3F
痾 我只是想說會不會是那樣的問題,小弟C新手,還請S大賜教,謝謝。
※ 編輯: Holffman (111.251.141.96), 05/13/2019 21:57:44
→
05/13 22:07,
5年前
, 4F
05/13 22:07, 4F
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
推
05/13 22:26,
5年前
, 5F
05/13 22:26, 5F
了解,但這樣他是不是會比較兩次,假設輸入A,他會計算A和\0,如果是這樣,有沒有辦
法只讓他計算A的值。謝謝。
※ 編輯: Holffman (111.251.141.96), 05/13/2019 22:35:09
→
05/13 22:50,
5年前
, 6F
05/13 22:50, 6F
→
05/13 22:55,
5年前
, 7F
05/13 22:55, 7F
→
05/13 22:55,
5年前
, 8F
05/13 22:55, 8F
→
05/13 22:56,
5年前
, 9F
05/13 22:56, 9F
→
05/13 22:57,
5年前
, 10F
05/13 22:57, 10F
→
05/13 22:58,
5年前
, 11F
05/13 22:58, 11F
推
05/14 01:58,
5年前
, 12F
05/14 01:58, 12F
推
05/14 04:13,
5年前
, 13F
05/14 04:13, 13F
→
05/14 04:13,
5年前
, 14F
05/14 04:13, 14F
→
05/14 04:15,
5年前
, 15F
05/14 04:15, 15F
→
05/14 12:16,
5年前
, 16F
05/14 12:16, 16F
→
05/14 13:09,
5年前
, 17F
05/14 13:09, 17F
→
05/14 13:09,
5年前
, 18F
05/14 13:09, 18F
→
05/14 13:09,
5年前
, 19F
05/14 13:09, 19F
→
05/14 14:18,
5年前
, 20F
05/14 14:18, 20F
→
05/14 14:46,
5年前
, 21F
05/14 14:46, 21F
→
05/14 14:46,
5年前
, 22F
05/14 14:46, 22F
→
05/14 14:46,
5年前
, 23F
05/14 14:46, 23F
推
05/15 17:01,
5年前
, 24F
05/15 17:01, 24F
→
05/15 17:01,
5年前
, 25F
05/15 17:01, 25F
→
05/15 17:01,
5年前
, 26F
05/15 17:01, 26F