簡體   English   中英

ANSI C,整數到字符串沒有可變參數函數

[英]ANSI C, integer to string without variadic functions

我目前正在使用支持ANSI C的PLC,但使用自己的GNU編譯器,它不會編譯任何可變函數和像itoa這樣的東西。 所以使用sprintf&co。 不是將整數轉換為字符串的選項。 任何人都可以引導我到一個網站,其中列出了強大的,無sprintf的itoa實現或在此發布合適的算法? 提前致謝。

這是來自K&R:

void itoa(int n, char s[])
{
    int i, sign;

    if ((sign = n) < 0)  /* record sign */
        n = -n;          /* make n positive */
    i = 0;
    do {       /* generate digits in reverse order */
        s[i++] = n % 10 + '0';   /* get next digit */
    } while ((n /= 10) > 0);     /* delete it */
    if (sign < 0)
        s[i++] = '-';
    s[i] = '\0';
    reverse(s);
} 

reverse()只是反轉一個字符串。

僅僅為了完整性和作為可能偶然發現主題的其他人的參考,我將這個鏈接添加到itoa itoa的遞歸實現中,因為它簡單美觀,我喜歡它,但不能用於我的目標系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM