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