字符串训练04—自我实现itoa(整形转字符串) 如: 123 转换成 “123” “-123” 转换成 -123

xiaoxiao2021-02-28  128

/*************************************************   整型数转字符串  123 -> "123"  -123 -> "-123" *************************************************/ #include <stdio.h> int IntegerToString(int num, char *str) { if (str == NULL) { return -1; } int temp = num;  //先定义临时变量记录num int len = 0;   //num  的位数 int count = 0; int flag = 1; if (num < 0) { flag = -1;   //负数则放置标志-1,并先转化为正数处理 num *= -1; } while (temp) { temp /= 10; len++;   //num的位数 } count = len; while (num) { str[--len] = num % 10 + '0';  //将各位数转为字符串放在数组里 num /= 10; } str[count] = '\0'; if (flag == -1)  //处理负数 { while (count >= 0) { str[count + 1] = str[count];  //将数组整体后移1位 count--; } str[0] = '-';   //将'-'插入到开头 } } int main() { int num = 0; char str[100] = {0};  //用于存放处理好的字符串 printf ("please input a integer: "); scanf ("%d", &num); printf ("The original number is %d\n", num); if ( IntegerToString(num, str) == -1 ) { printf ("function IntegerToString error!\n"); return -1; } printf ("The result is %s\n", str); return 0; }
转载请注明原文地址: https://www.6miu.com/read-37832.html

最新回复(0)