Как записать число в строку? - C (СИ)
Формулировка задачи:
Только начал изучать программирование. Задали задачу. Есть число а = 12389329, есть массив buf[1024]. Надо записать число в массив в виде строки и записать число в файл.
Создал цикл, но проблема в том, что цифры "выходят" в обратном порядке. Что мне сделать дальше? Помогите пожалуйста!
#include <stdio.h>
void main (void)
{
int a = 12389329;
char buf[1024];
while (a > 0)
{
b = a % 10;
a /= 10;
b += 48;Решение задачи: «Как записать число в строку?»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void inplace_reverse(char * string) {
if (string) {
char * end = string + strlen(string) - 1;
#define XOR_SWAP(a,b) do\
{\
a ^= b;\
b ^= a;\
a ^= b;\
} while (0)
while (string < end) {
XOR_SWAP(*string, *end);
string++;
end--;
}
#undef XOR_SWAP
}
}
void strrev(char *buffer) {
char *temp = buffer;
while(temp && *temp) {
++temp;
}
for(--temp; buffer < temp; ++buffer, --temp)
*buffer = *buffer ^ *temp,
*temp = *buffer ^ *temp,
*buffer = *buffer ^ *temp;
}
int main(void) {
int a = 12389329;
char buf[1024];
sprintf(buf, "%d", a);
printf("Число: %s\n", buf);
strrev(buf);
printf("Число: %s\n", buf);
FILE* fd = fopen("file/number.txt", "w");
if (fd == NULL) {
printf("Ошибка открытия файла!\n");
exit(1);
}
fprintf(fd, "%s\n", buf);
fclose(fd);
return EXIT_SUCCESS;
}