第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