【方法1: 自作のitoa関数】 以下は、簡単な自作のitoa関数の実装例です。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char str[], int length) {
int start = 0;
int end = length - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
char* itoa(int num, char* str, int base) {
int i = 0;
int is_negative = 0;
if (num == 0) {
str[i++] = '0';
str[i] = '\0';
return str;
}
if (num < 0 && base == 10) {
is_negative = 1;
num = -num;
}
while (num != 0) {
int rem = num % base;
str[i++] = (rem > 9) ? (rem - 10) + 'a' : rem + '0';
num = num / base;
}
if (is_negative)
str[i++] = '-';
str[i] = '\0';
reverse(str, i);
return str;
}
int main() {
int num = 12345;
char str[20];
itoa(num, str, 10);
printf("Number: %d\n", num);
printf("String: %s\n", str);
return 0;
}
このコードは、与えられた整数を10進数の文字列に変換します。自作のitoa関数では、与えられた整数が負の場合にはマイナス符号を付け、負でない場合には文字列に直接変換します。最後に、文字列を逆順に並び替えます。
【方法2: sprintf関数を使用する方法】 C言語の標準ライブラリには、文字列に整数を変換するためのsprintf関数が含まれています。以下はその使用例です。
#include <stdio.h>
int main() {
int num = 98765;
char str[20];
sprintf(str, "%d", num);
printf("Number: %d\n", num);
printf("String: %s\n", str);
return 0;
}
このコードでは、sprintf関数を使用して整数を文字列に変換しています。sprintf関数は、指定されたフォーマットに従って文字列にデータを書き込むことができます。%dは整数のフォーマット指定子であり、与えられた整数を文字列に変換します。
以上が、C言語でのitoa関数の使用方法と例です。自作のitoa関数を使用するか、sprintf関数を使用するかは、プロジェクトの要件や個人の好みによって異なります。