¼ö¿­À» ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
mpStr2Num  ¼ö¿­À» ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÑ´Ù
Çü½Ä
void mpStr2Num(int *num, char *str);
Àμö
num  (Ãâ·Â) º¯È¯µÈ ´Ù¹èÀå Á¤¼ö
str  (ÀÔ·Â) ¼ýÀÚ¿­
ÇÔ¼öÄ¡
¾øÀ½
ÁÖÀÇ »çÇ×
´Ù¹èÀå Á¤¼öÀÇ ¹è¿­ÀÇ °¢ ¿ä¼Ò ai(i ´Â 1 ÀÌ»ó)´Â 1¾î¸¦ ³ªÅ¸³», 1¾î·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â ÃÖ´ëÀÇ Á¤¼ö´Â 9999 ·Î ÇÑ´Ù. ¸»ÀÇ ±æÀÌ´Â a0 ÀÇ °ªÀ¸·Î ³ªÅ¸³½´Ù. Áï, ´Ù¹èÀå Á¤¼ö´Â
anKn-1+ an-1Kn-2+...+a2K+ a1
±×¸®°í Ç¥ÇöÇÑ´Ù. ´Ù¸¸, K=10000, n=a0.

¿ë·Ê(mpStr2Num-test.c )

ÇÁ·Î±×·¥(mpStr2Num.c )
#define N 10000

void mpStr2Num(int *num, char *str)
{
    char *ss;
    int  *nn;
    int  k;
    int  x;

    while (*str == ' ' || *str == '\t') str++;
    while (*str == '0') str++;
    ss = str;
    while (*ss >= '0' && *ss <= '9') ss++;

    if (ss == str) {
        *num = 0;
        return;
    }

    x = 0;
    k = 1;
    nn = num;
    do {
        x += (*--ss - '0') * k;
        k *= 10;
        if (k == N || ss == str) {
            *++nn = x;
            x = 0;
            k = 1;
        }
    } while (ss ! = str);

    *num = nn - num;
}
¼³¸í

°ü·Ã ÇÔ¼ö
´Ù¹èÀå Á¤¼öÀÇ °¡»ê, ´Ù¹èÀå Á¤¼öÀÇ °¨»ê, ´Ù¹èÀå Á¤¼öÀÇ °ö¼À, ´Ù¹èÀå Á¤¼öÀÇ Á¦»ê, ´Ù¹èÀå Á¤¼öÀÇ Æò¹æ±Ù, ´Ù¹èÀå Á¤¼öÀÇ ´ë¼Ò ºñ±³, ´Ù¹èÀå Á¤¼ö¸¦ ¼ö¿­·Î º¯È¯ÇÏ´Â, long Á¤¼ö¸¦ ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÏ´Â, ´Ù¹èÀå Á¤¼ö¸¦ long Á¤¼ö·Î º¯È¯ÇÑ´Ù