其他分享
首页 > 其他分享> > 第3关:选出串中的数字

第3关:选出串中的数字

作者:互联网

本关任务:在一串隐藏着一个或多个数值的字符中,选出字符串中的所有数字字符,并将选出的数字字符重新组成新字符串。如果在第一个数字字符之前有负号,则保留该负号,有多个负号时只保留一个。

例如:输入的字符串为“a-1-2-4sd5 s6”,抽取数字后得到的新字符串为“-12456”。

方法解答:

#include <iostream>

using namespace std;

void extractNum(char * str);

int main()

{

    char s[1024];

    cin.getline(s,1024);     // 输入一行字符

    extractNum(s);     // 调用extractNum函数,选出数字

    cout<<s<<endl;     // 输出选出的数字

    return 0;

}

// 函数extractNum:选出str指向的字符串中的数字,并写回str

// 参数:str-指向字符串

void extractNum(char * str)

{

    // 请在此添加代码,实现函数extractNum

    /********** Begin *********/

            char *p=str;
            while(*p!='\0')
            {
                if(*p>='0' && *p<='9')
                {
                    break;
                }
                p++;
            }
            int flagfu=0;
            if(*(p--)=='-')
            {
                flagfu=1;
            }
            if(flagfu==1)
            {
                *str='-';
                str++;
            }
            p=str;
            while(*p!='\0')
            {
                if(*p>='0' && *p<='9')
                {
                    *str=*p;
                    str++;
                }
                p++;
            }
            *str='\0';

    /********** End **********/

}

标签:选出,数字,++,char,str,字符串,串中,extractNum
来源: https://blog.csdn.net/weixin_53597296/article/details/121299784