字符串中找出连续最长的数字字符串的实例代码
2016-09-20 22:23
459 查看
//1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存。 //例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789 #include #include int continumax(char *outputstr,char *inputstr) { assert(outputstr); assert(inputstr); int length = 0; int maxlength = 0; int i = 0; int j = 0; while(inputstr[i] != '\0') { while( inputstr[i] >='0'&& inputstr[i] <= '9') { length++; i++; } if(length > maxlength) { maxlength = length; int k = i-maxlength; //k为数字串之前字符的个数,i已经遍历完数字串,length为数字串字符个数 for(j = 0; j < maxlength; j++ ) { outputstr[j] =inputstr[k++]; } length = 0; continue; } i++; length = 0; } outputstr[j] = '\0'; ////字符串最后填'\0' return maxlength; } int main( ) { char inputstr[ ]= "abcd12345eddafsd125ss123456789"; char outputstr[100]; int max_numstr_length = continumax(outputstr,inputstr); printf("%s\n",outputstr); printf("the max_numstr_length is %d\n", max_numstr_length); return 0; } //下面是指针实现方法 #include #include int continumax(char * outputstr, char * inputstr) { int len = 0; //统计数字字符串的长度 int max = 0; //当前最大数字字符串的长度 char *pstr =NULL; //记录最大数字字符的起始位置 while(* inputstr!= '\0') { if(*inputstr <= '9' && *inputstr >='0') //统计数字子字符串的长度 { len++; inputstr++; continue; } else if (len > max) //如果统计出来的数字字符串大于当前的最大数字子字符串的长度,则更新 { max = len; pstr = inputstr-len; len = 0; } inputstr++; } for(int i = 0 ; i
相关文章推荐
- JAVA基础知识点梳理四:数组
- C++内存分配方式
- Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level(转)
- 1022 D进制的A+B
- 被搞得晕头转向的LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
- c/c++练习–03
- 传智播客35期JavaEE工程师从基础到实战视频
- JAX-RS规范的版本.实现.jar对应关系
- 代码阅读
- SpringBoot中实现拦截器, 并实现对404和500等错误的拦截。
- Eclipse for C/C++ (三)编写DLL文件之def文件的使用
- python编码发邮件
- Eclipse快捷键的使用
- [LeetCode-Java]14. Longest Common Prefix
- python自学笔记6之库函数
- Python学习笔记Day2
- Python学习笔记Day1
- java实现基于SGIP协议开发联通短信的方法
- JAVA基础(007_两个int型变量的数值交换)
- php四种基础算法:冒泡,选择,插入和快速排序法