实现一个函数itoa(int n, char s[]),将整数n这个数字转换为对应的字符串,保存到s中。

实现一个函数itoa(int n, char s[]),将整数n这个数字转换为对应的字符串,保存到s中。

#include <stdio.h>

void reverse(char *left, char *right)
{
 while (left < right)
 {
  char tmp = *left;
  *left = *right;
  *right = tmp;
  left++;
  right--;
 }
}

void my_itoa(int n, char s[])
{
 char *start;
 char *end;
 if (n < 0)
 {
  *s = ‘-‘;
  n = -n;
  s++;
 }
 start = s;
 while (n)
 {
  *s = (n % 10) + ‘0‘;
  s++;
  n /= 10;
 }
 *s = ‘\0‘;
 end = s - 1;
 reverse(start, end);


}

int main()
{
 int num = -1234;
 char arr[10];
 my_itoa(num, arr);
 printf("%s\n", arr);
 return 0;
}

时间: 2024-11-07 17:57:02

实现一个函数itoa(int n, char s[]),将整数n这个数字转换为对应的字符串,保存到s中。的相关文章

【C语言】【笔试题】实现函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中

#include <stdio.h> static int i=0;//定义全局变量i 作为数组s[]的下标 int itoa(int n,char s[]) {  if(n<10) { s[i]=n+'0'; } else  { itoa(n/10,s);//递归 i++; n=n%10;//最后一位的数字 s[i]=n+'0'; } s[i+1]='\0';//字符串结束标志 } int main() { char s[6]; int num=0; printf("inpu

【C语言】【笔试题】编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include <stdio.h> static int i=0; int itob(int n,char s[],int b) { if(n<2) { s[i]=n+'0'; } else { itob(n/2,s,b); //递归 i++; n=n%2; s[i]=n+'0'; } s[i+1]='\0';//结束标志 return 0; } int main () { char s[20]; int num=0; scanf("%d",&num); i

【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include<stdio.h> void itob(int n,char s[], int b) {  int i=1;  for(;i<=32;i++)    //共循环了32次,保证得到32位的二进制数  {   s[i-1]= n % b;   //数组是从编号0开始的,一直到编号31结束   n = n/b ; //用模除的方法依次得到每位进制数  }  for(i=32;i>0;i--)  {   printf("%d",s[i-1]);   }

编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

在本题中,二进制.八进制及十进制算法思路一样,采取模除的方式,输出各个位置的数,接着采用逆序输出.在十六进制中"0123456789abcdef"[num%16],求出各位的数字. #include<stdio.h> void reverse(int len,char arr[]) //逆置 {  int left =0;  int right =len -1;  while(left < right)  {   char temp = arr[left];     

编写一个函数 reverseDigit(int num).该函数读入一个整数,然后将这个整数的每个位上的数字逆序输出。

#include<iostream> using namespace std; void reverseDigit(int num) { int a[100],len=0; while(num!=0) { a[len++]=num%10; num/=10; } for(int i=0;i<len;i++) cout<<a[i]; cout<<endl; } int main() { int n; cout<<"请输入一个数字:";

字符串函数---itoa()函数具体解释及实现

itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据. string:目标字符串的地址. radix:转换后的进制数,能够是10进制.16进制等.范围必须在 2-36. 功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数). 返回值:函数返回一个指向 str.无错误返回. itoa()函数实例: #inc

字符串函数---itoa()函数详解及实现

itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据. string:目标字符串的地址. radix:转换后的进制数,可以是10进制.16进制等,范围必须在 2-36. 功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数). 返回值:函数返回一个指向 str,无错误返回. itoa()函数实例: #inc

关于int main(int argc,char* argv[])详解

平时在VS的环境下,主函数总会看到这两个参数,今天突然很想知道这两个参数的原理以及作用,因此查了下资料.真心受教了. 下面的博文是在百度空间看一位大神的,原文链接:http://hi.baidu.com/sgglong70626/item/8881322b2dce21c1ee10f11e argc是命令行总的参数个数   argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数

类型转换 - CString,int,string,char*之间的转换

<C++标准函数库>中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy() ................................................................. int 转 CString: CString.Format("%d",int); ..............................