- ベストアンサー
数値を文字列化する関数StoAの作成について
- 数値を文字列化する関数StoAを作成する方法について教えてください。
- 関数StoAは与えられた数値を文字列に変換し、そのポインタを返す処理を行います。
- 呼び出し側の書式はvoid main(void)であり、数値123と-1234を文字列に変換して表示する処理が含まれます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
じゃあ、助けてあげよう。でも、面倒だからていねいな解説は無しね :-) #include <stdio.h> char* StoA(short nVal) { static char buf[16]; char* p = &buf[0]; char* q; int i = nVal; int is_minus = 0; if (i < 0) { is_minus = 1; i *= -1; } do { short a = i % 10; *p++ = a + '0'; i /= 10; } while (i > 10); if (i != 0) { *p++ = i + '0'; } if (is_minus) { *p++ = '-'; } *p-- = '\0'; q = &buf[0]; while (p > q) { char c; c = *p; *p = *q; *q = c; --p; ++q; } return buf; } int main(void) { char *pc; pc = StoA(123); printf("%s\n", pc); pc = StoA(-1234); printf("%s\n", pc); pc = StoA(-32768); printf("%s\n", pc); pc = StoA(32767); printf("%s\n", pc); return 0; } 1の位から数字を取ってゆき(10で割った余りね)、最後にひっくり返す。 # でも、いまどき void main() って教える専門学校って、どんなもんだか…