mirror of
https://github.moeyy.xyz/https://github.com/TheAlgorithms/C.git
synced 2023-10-11 15:56:24 +08:00
replaced itoa with snprintf & fixed other docs
This commit is contained in:
parent
313a98085d
commit
98f9ae391f
@ -1,9 +1,11 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* @brief Convert integer to string (non-standard function)
|
||||
* @brief Convert a positive integer to string (non-standard function)
|
||||
* representation.
|
||||
*/
|
||||
#include <assert.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -13,14 +15,15 @@
|
||||
* Converts an integer value to a null-terminated string using the specified
|
||||
* base and stores the result in the array given by str parameter.
|
||||
* @param value Value to be converted to a string.
|
||||
* @param dest Array in memory where to store the resulting null-terminated
|
||||
* @param dest pointer to array in memory to store the resulting null-terminated
|
||||
* string.
|
||||
* @param base Numerical base used to represent the value as a string, between 2
|
||||
* and 16, where 10 means decimal base, 16 hexadecimal, 8 octal, and 2 binary.
|
||||
* @returns A pointer to the resulting null-terminated string, same as parameter
|
||||
* str.
|
||||
* @note The destination array must be pre-allocated by the calling function.
|
||||
*/
|
||||
char *int_to_string(int value, char dest[], int base)
|
||||
char *int_to_string(uint16_t value, char *dest, int base)
|
||||
{
|
||||
const char hex_table[] = {'0', '1', '2', '3', '4', '5', '6', '7',
|
||||
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
||||
@ -57,14 +60,14 @@ static void test()
|
||||
/* Generate value from 0 to 100 */
|
||||
int value = rand() % 100;
|
||||
|
||||
assert(strcmp(itoa(value, str1, 2), int_to_string(value, str2, 2)) ==
|
||||
0);
|
||||
assert(strcmp(itoa(value, str1, 8), int_to_string(value, str2, 8)) ==
|
||||
0);
|
||||
assert(strcmp(itoa(value, str1, 10), int_to_string(value, str2, 10)) ==
|
||||
0);
|
||||
assert(strcmp(itoa(value, str1, 16), int_to_string(value, str2, 16)) ==
|
||||
0);
|
||||
// assert(strcmp(itoa(value, str1, 2), int_to_string(value, str2, 2)) ==
|
||||
// 0);
|
||||
snprintf(str1, MAX_SIZE, "%o", value);
|
||||
assert(strcmp(str1, int_to_string(value, str2, 8)) == 0);
|
||||
snprintf(str1, MAX_SIZE, "%d", value);
|
||||
assert(strcmp(str1, int_to_string(value, str2, 10)) == 0);
|
||||
snprintf(str1, MAX_SIZE, "%x", value);
|
||||
assert(strcmp(str1, int_to_string(value, str2, 16)) == 0);
|
||||
|
||||
free(str1);
|
||||
free(str2);
|
||||
|
Loading…
Reference in New Issue
Block a user