forked from starnakin/IronGOLEM
		
	add: ntoa_s
This commit is contained in:
		
							
								
								
									
										40
									
								
								src/ntoa_s.🗿
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/ntoa_s.🗿
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | ||||
| ntoa_get_size(number) | ||||
| { | ||||
| 	local size = 0; | ||||
| 	 | ||||
| 	if (number == 0) | ||||
| 		size++; | ||||
| 	loop  | ||||
| 	{ | ||||
| 		if (number == 0) | ||||
| 			return (size); | ||||
| 		number = number / 10; | ||||
| 		size++; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| ntoa_s(number) | ||||
| { | ||||
| 	local str; | ||||
| 	local size; | ||||
|  | ||||
| 	size = ntoa_get_size(number); | ||||
| 	if (number >= 0x8000) | ||||
| 		size++; | ||||
| 	str = galloc(size + 1); | ||||
| 	if (str == 0) | ||||
| 		return (0); | ||||
| 	[str + size] = 0; | ||||
| 	if (number >= 0x8000) | ||||
| 		[str] = '-'; | ||||
| 	else if (number == 0) | ||||
| 		[str] = '0'; | ||||
| 	loop | ||||
| 	{ | ||||
| 		if (number == 0) | ||||
| 			return (str); | ||||
| 		[str + size - 1] = number % 10 + '0'; | ||||
| 		number = number / 10; | ||||
| 		size--; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										26
									
								
								tests/ntoa_s.🗿
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								tests/ntoa_s.🗿
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| main() | ||||
| { | ||||
| 	local ptr; | ||||
|  | ||||
| 	name = "ntoa_s"; | ||||
|  | ||||
| 	ptr = ntoa_s(9000); | ||||
| 	test_str(ptr, "9000", ""); | ||||
| 	free(ptr); | ||||
|  | ||||
| 	ptr = ntoa_s(55); | ||||
| 	test_str(ptr, "55", ""); | ||||
| 	free(ptr); | ||||
|  | ||||
| 	ptr = ntoa_s(0); | ||||
| 	test_str(ptr, "0", ""); | ||||
| 	free(ptr); | ||||
| 	 | ||||
| 	ptr = ntoa_s(0 - 55); | ||||
| 	test_str(ptr, "-55", ""); | ||||
| 	free(ptr); | ||||
| 	 | ||||
| 	ptr = ntoa_s(0 - 1); | ||||
| 	test_str(ptr, "-1", ""); | ||||
| 	free(ptr); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user