题目:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中。
题目分析:
对于这一个问题,我们首先能够联想到字符在计算机存储是以自身的ASCII码存储的,例如:‘0’存储为48,‘1’存储为49,那么如果给‘0’—‘9’这些字符相应的减去‘0’,刚好对应的是数字的0-9;这是我们做这个题目的前提。
同时,可以定义一个数组,将转换好的数字先保存下来,这时会发现数组中保存的数字与我们期望得到的数字顺序相反,这时可以考虑数组元素的逆置。将这些问题解决了,这道题目就完成了。
#define _CRT_SECURE_NO_WARNINGS 1#include#include /*实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中。*/ void itoa(int n,char s[]){ int i = 0; int left = 0; int right = 0; while( n ) //将数字转换为字符 { s[i] = n % 10 + '0'; n /= 10; i++; //left已经向后移位 } right = i - 1; s[i] = '\0'; //添加字符串结束标志 while(left < right) //将数组中的元素逆置 { char tmp = s[left]; s[left] = s[right]; s[right] = tmp; left++; right--; }} int main(){ int num = 0; char arr[10]; scanf("%d", &num); itoa(num, arr); printf("%s\n", arr); system("pause"); return 0;}