將整數n轉換成字符串的方法

最近作一個題,用遞歸方法將整數n轉換成爲字符串,作了半天作好了才發現有一個庫函數直接就能夠實現這個功能,真是日了狗了。。。。數組

小二,上代碼。。。ide

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//  這個turnover函數是爲了將字符串調轉過來,由於convert函數中將n轉換成字符串後字符串是倒着的
//  就是利用了一箇中間變量將字符串數組s首尾依次交換
char *turnover(char *s)
{
 int i,j;    // 臨時變量
 char c;     // 臨時變量
 j=strlen(s)-1;   // 獲取字符串有字符的長度由於字符串後又'\0',因此減1
 for(i=0;i<=j/2;i++)  // 循環一次交換
 {
  c=s[j];
  s[j--]=s[i];
  s[i]=c;
 }
 return s;
}
// 將整數n轉換成字符串
char *convert(int n,char *s)
{
 char c[]={'0','\0'}; // 臨時變量,用於存儲從n上一次剝落的字符
 c[0]=n%10+'0';   // 將n的個位轉化成字符,存儲在c[0]中
 strcat(s,c);   // 鏈接s與c
 n/=10;     // n被剝落一位就減去一位
 if(n!=0)    // 遞歸開始。。。
  convert(n,s);
 else
  return turnover(s);
}
int main()
{
 int n;
 char s[100],*str;
 scanf("%d",&n);
 str=convert(n,s);
 printf("%s\n",str);
}

其實將n轉換成字符串還有一個更方便的庫函數int sprintf(char *s,"......",各類參數);函數

這個函數第一個參數爲字符串首地址,第二個參數爲格式字符串,第三個爲格式控制。返回值爲字符字符串的長度。用法以下:spa

#include<stdio.h>
#include<string.h>
int main()
{
 char buffer[80];
 int n,i;
 scanf("%d",&n);
 i=sprintf(buffer,"%d",n);
 printf("%s\n",buffer);
 printf("%d",i);
}

輸出結果爲:blog

wKiom1U4qRiwEl0JAABdEMgWenc356.jpg

相關文章
相關標籤/搜索