从一个字符数组中读出相应的整数、实数(有点问题,待调试,求大神帮忙)

来源:互联网 发布:淘宝美工基础 编辑:程序博客网 时间:2024/06/05 21:49

从一个字符数组中读出相应的整数、实数

// author:yangyang。//main.c#include "stdafx.h"void shishupanduan(int flag);char s[11];char *p = s;void main(){    gets_s(s);    char zhengshu[10];    int i = 0;    int dianflag=0;//有几个小数点    int dianflaga[10] = { 0 };//每个小数点的位置    int *pdianflaga = dianflaga;//小数点位置数组的指针    int wflag = 1;    while (wflag==1)    {        //输出整数        if ((*p >= '0'&&*p <= '9'))        {            zhengshu[i] = *p;            i++; p++;        }        else if (*p == '.')            {                *(pdianflaga+dianflag) = i;//记录小数点在第几个                dianflag++;//更新小数点个数                p++; i++;            }        //p++;        else if (*p == '\0')//遇到结束标识符退出死循环        {            p = zhengshu;            while (1)            {                for (int j = 0; j < i; j++)                printf("%c", *(p + j));                wflag = 0;                break;            }        }        else        {            //p++; //i++;        }    }    printf("\n");    for (int dd = 0; dd < dianflag; dd++)     {        shishupanduan(*(pdianflaga));        pdianflaga++;    }}void shishupanduan(int flag){    p = s;    int flag1 = flag;    int flag2 = flag;    for (int k = 0;k<flag; k++) //往前判断是否为整数    {        if (*(p + flag1-1) >= '0'&&*(p + flag1-1) <= '9')//是整数往前移位        {            flag1--;        }        else//不是整数跳出for循环            break;    }    for (int k = 0;k<10-flag; k++)//往后判断是否为整数    {        if (*(p + flag2+1) >= '0'&&*(p + flag2+1) <= '9')//是整数往后移位        {            flag2++;        }        else//不是整数跳出for循环            break;    }    for (int k = flag1 ; k <= flag2; k++)            printf("%c", *(p + k));    printf("\n");}
0 0
原创粉丝点击