//
// main.c
// untitled
//
// Created by Mewlan Musajan on 11/10/23.
//
#include <stdio.h>
#include <stdlib.h>
// A utility function to reverse a string
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;
end--;
start++;
}
}
// Implementation of citoa()
char* citoa(int num, char* str, int base)
{
int i = 0;
uint isNegative = 0;
/* Handle 0 explicitly, otherwise empty string is
* printed for 0 */
if (num == 0) {
str[i++] = '0';
str[i] = '\0';
return str;
}
// In standard itoa(), negative numbers are handled
// only with base 10. Otherwise numbers are
// considered unsigned.
if (num < 0 && base == 10) {
isNegative = 1;
num = -num;
}
// Process individual digits
while (num != 0) {
int rem = num % base;
str[i++] = (rem > 9) ? (rem - 10) + 'a' : rem + '0';
num = num / base;
}
// If number is negative, append '-'
if (isNegative)
str[i++] = '-';
str[i] = '\0'; // Append string terminator
// Reverse the string
reverse(str, i);
return str;
}
int main(int argc, const char * argv[]) {
char string[25];
for (int i = 0;; ++i)
{
int number = rand();
citoa(number, string, 2);
printf("%s", string);
}
return(0);
}