在字符串中找出连续最长的数字串
样例输出
输出123058789,函数返回值9
输出54761,函数返回值5
接口说明
函数原型:
unsignedint Continumax(char** pOutputstr, char* intputstr)
输入参数: char* intputstr 输入字符串;
输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串;
返回值: 连续最长的数字串的长度
输入一个字符串。
输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度
abcd12345ed125ss123058789
123058789,9
解答代码:
#include<iostream> #include<fstream> #include<string> #include<cstring> #include<algorithm> #include<sstream> using namespace std; int main() { char s[1024]; while(cin.getline(s,1024)) { string temp=""; string resu=""; int i,max=0,cou=0; int flagLength=0; int length=strlen(s); for(i=0; i<length; i++) { if(s[i] >= '0' && s[i] <= '9') { cou++; temp+=s[i]; } else { if(cou>max) { resu=temp; max=cou; temp=""; cou=0; continue; } else if(max==cou) { resu+=temp; } temp=""; cou=0; } } if(i==length) { if(cou>max) { resu=temp; temp=""; max=cou; cou=0; } else if(cou==max) resu+=temp; } cout<<resu<<','<<max<<endl; } return 0; }