【摘】用C實現將數群組轉換為字串

來源:互聯網
上載者:User
代碼

#include <stdio.h>
#include <stdlib.h>

char *digitToAlpha (int val, char *buf, unsigned radix);

int main(int argc, char *argv[])
{
  int iNum=1000;
  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; 
}

 

該程式的測試環境:

WinXPSP2,Dev C++ 4.9.9.2

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.