flyinghawl 2010年09月26日
2010百度笔试题求最长数字串的
原题如下:

/****

1·int maxcontinunum(const char *inputstr,char * outputstr)

编写一段程序实现该函数,实现返回一个以“\0”结束的字符串中最长的数字串的长度,并把该数字子串的首地址赋给outputstr。不能使用任何库函数或已经存在的函数,如strlen。

例如:在字符串“abc123abcdef12345abcdefgh123456789”中,把该字符串的首地址赋给inputstr,返回9,outputstr指向字符串“123456789”的首地址。



***/


因为事先没有拿到真正的题目,只是在描述中我就写了一个代码,编译通过了,不过和原题的要求不符合,当然了,可以改正一下,代码如下:请各位指教,哈哈。



#include <iostream>

using namespace std;

char* cz(const char* str, int len){

int start = 0, zcc = 0, sy = 0;
char * temp;

cout << "cz被调用。" << endl;

for (int k = 0; k < len; k++)
{
char ch;



ch = str[k];

if (ch >= '0' && ch <= '9')
{
sy++;

if (((k >= 1) && ((str[k-1] <= '0' || str[k-1] >= '9'))) || k ==0)
{
start = k;
sy = 1;
}
}else{

if (zcc < sy)
{
zcc = sy;
temp = (char*)(str + start);
sy = 0;
}

}

}

for(char* ls = temp; ls < zcc+temp; ls++)
cout<< *ls;

cout << endl;

cout << "数字串的长度为:" << zcc << endl;


return temp;


}


int main(){

char test[50] = "abc123deeg89m+_345678bnm367";
char* s;

s = cz(test, 27);

cout << "s的开始地址为" << &s << endl;

return 0;


}



...全文
127 点赞 收藏 6
写回复
6 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告