写一个 C 函数,该函数将给定的一个字符串转换成数字

    技术2022-05-12  40

    /* 请编写一个 C 函数,该函数将给定的一个字符串转换成整数。 */

    void ConvertStringToNumber(char *str, double *num)

    {

    unsigned int uiMinusFlag = 0;

    int iTempVar = 0;

    int iCounter = 0;

    int iKeyWordNum = 0;

    char *cPointer = str;

    double Integer = 0;

    /* 计算整数部分和小数部分的长度 */

    while (*cPointer!= '/0')

    {

    if (*cPointer == '-')

    {

    cPointer++;

    continue;

    }

    if (*cPointer == '.')

    {

    break;

    }

    cPointer++;

    /* 保存所有的字数 */

    iKeyWordNum++;

    }

    /* 将文字列转换为数字,将数字保存到新的Double类型数据中*/

    cPointer = str;

    while (*cPointer!= '/0')

    {

    if ('-' == *cPointer)

    {

    /* 负数标志位有效 */

    uiMinusFlag = 1;

    cPointer++;

    continue;

    }

    if ('.' == *cPointer)

    {

    *num += ((int)(*cPointer-0x30))/pow(10,iCounter++);

    cPointer++;

    continue;

    }

    *num += ((int)(*cPointer-0x30))*pow(10,--iKeyWordNum);

    cPointer++;

    }

    /* 如果是负数的情况,计算相应的负数 */

    if (uiMinusFlag == 1)

    {

    *num = 0 - *num;

    }

    }

    void main()

    {

    char *str = "-123456.78956";

    double doutputnum = 0;

    printf("%s/n",str);

    ConvertStringToNumber(str,&doutputnum);

    printf("%lf",doutputnum);

    }


    最新回复(0)