整形轉化爲字符串實現 --小題一波

void int2string(int n, char *str);

int main()
{
    int num;
    char p[10];

    cout << "please input an integer:" ;
    cin >> num;
    cout << "output: ";
    int2string(num,p);
    cout << p<< endl;

    return 0;
}

void int2string(int n, char *str)
{
    char buf[10] = "";
    int i = 0;
    int len = 0;
    int temp = n < 0 ? -n : n ; //小技巧

    if(str == NULL)
    {
        return;
    }

    while (temp)
    {
        buf[i++] = (temp % 10) + '0'; //吧temp的每一位上的數存進buf中
        temp = temp / 10 ;
    }

    len = n < 0 ? ++i : i;  //確認n是否爲負數,是負數就需要一位作爲符號位進行佔位
    str[i] = 0;
    while (1)
    {
        i--;
        if(buf[len - i - 1] == 0)
        {
            break;
        }
        str[i] = buf[len - i - 1];  //把buf中的字符逆序輸出
    }
    if(i == 0)
    {
        str[i] = '-';   //若是負數 就添加一個符號
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章