API数字をcharに変換できるプロジェクトに取り組んでいます。文字列ポインターの配列を使用して変換を取得しました。ただし、使用している API は char のみを受け入れるため、単一の ch のみを返したいと考えています。したがって、ap_five は「5」を返します。しかし、5を単一の文字「5」にしたいのです。
リターンでcharにキャストできるのではないかと思いました。しかし、私はただゴミを手に入れます。
これを解決する他の方法があると確信しています。現在のプログラムでどのように解決できるのか疑問に思っています。
char *digits_conversion[][2]=
{
{"ap_zero", "0"},
{"ap_one", "1"},
{"ap_two", "2"},
{"ap_three", "3"},
{"ap_four", "4"},
{"ap_five", "5"},
{"ap_six", "6"},
{"ap_seven", "7"},
{"ap_eight", "8"},
{"ap_nine", "9"},
{"ap_star", "*"},
{"ap_hash", "#"},
{NULL, NULL}
};
char convert_to_char(const char *digit)
{
int i = 0;
for(i = 0; *digits_conversion[i][1]; i++)
{
if(strcmp(digits_conversion[i][0], digit) == 0)
{
return (char) digits_conversion[i][1];
}
}
return '\0';
}
int main(void)
{
char ch;
ch = convert_to_char("ap_five");
printf("Converted digit: %c\n", ch);
return 0;
}