程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言將數字轉化為字符串

C語言將數字轉化為字符串

編輯:關於C語言

函數 char *digitToAlpha (int val, char *buf, unsigned radix) 的功能是將數值轉換為字符串。

參數:第一個是要轉化的整數,第二個是轉化後的字符串,第三個是要轉化整數的基數,就是說如果基數是10,就可以直接轉化,如果不是10,是其他值(2-36之間),則先把該整數轉化為該基數的數後,再轉化為字符串。

#include <stdio.h>
#include <stdlib.h>
char *digitToAlpha (int val, char *buf, unsigned radix);
int main(int argc, char *argv[])
{
  int iNum = 55;
  char strNum[10] = "";
  digitToAlpha(iNum,strNum,10);
  printf("%s \n",strNum);
  
  system("PAUSE");    
  return 0;
}
/*
功能:將數值轉換為字符串
參數:第一個是要轉化的整數   
     第二個是轉化後的字符串
     第三個是要轉化整數的基數,就是說如果基數是10,就可以直接轉化,如果不是10,是其他值(2-36之間),則先把該整數轉化為該基數的數後,再轉化為字符串
*/
char *digitToAlpha (int val, char *buf, unsigned radix) 
{ 
    char *p; /* pointer to traverse string */ 
    char *firstdig;/* pointer to first digit */ 
    char temp; /* temp char */ 
    unsigned digval; /* value of digit */ 
    p = buf; 
    if(val<0)
    { 
        /* negative, so output '-' and negate */ 
        *p++= '-'; 
        val = (unsigned long)(-(long)val); 
    } 
    firstdig = p;/* save pointer to first digit */ 
    do { 
        digval = (unsigned)(val%radix); 
        val /=radix; /* get next digit */ 
        /* convert to ascii and store */ 
        if (digval > 9) 
            *p++ = (char) (digval - 10 + 'a'); /* a letter */ 
        else 
            *p++ = (char) (digval + '0'); /* a digit */ 
    } while(val > 0); 
    /* We now have the digit of the number in the buffer, but in reverse 
    order. Thus we reverse them now. */ 
    *p-- = '\0'; /* terminate string; p points to last digit */ 
    do 
    { 
        temp = *p; 
        *p =*firstdig; 
        *firstdig= temp; /* swap *p and *firstdig */ 
        --p; 
        ++firstdig;     /* advance to next two digits */ 
    } while (firstdig < p); /* repeat until halfway */ 
    return buf; 
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved