1.判断是否在第一个数字之前含有负号
2.找出数字串
#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;
char* temp = str;
while(temp != p){
if(*temp =='-'){
flagFu=1;
break;
}
temp++;
}
if(flagFu){
*str = '-';
str++;
}
//
///求出数字
//
p=str;
while(*p != '\0'){
if(*p >='0' && *p <='9'){
*str = * p;
str++;
}
p++;
}
*str = '\0';
/********** End **********/
}
测试输入:1 s23df53dcas12sd-121sd
预期输出:1235312121
测试输入:a-1-2-3sd45 j67sd
预期输出:-1234567