C 最长数字子串
来源:互联网 发布:双色球旋转矩阵计算器 编辑:程序博客网 时间:2024/05/19 23:27
题目:查找字符串中长度最长的数字子串,返回最长子串在数组中的位置,项数,长度。
分析:利用循环逐个查找字符串,找到数字串时记下首字母位置,长度,再与其他子串比较,得出最长子串。
程序如下:
#include<stdio.h>
#include<ctype.h>
char * s_gets(char * st, int n);
int main()
{
char str[30];
printf("please enter str:");
s_gets(str, 30);
int i=0, j,temp,k=0,max=0,start=0;
char * ptr,*max_ptr;
while (str[i]!='\0')
{
while(!isdigit(str[i]))
i++;
if (isdigit(str[i]))
{
ptr = &str[i];
temp=i;
j = 0;
while (isdigit(str[i]))
{
i++;
j++;
}
if (j > max)
{
start = temp;
max_ptr = ptr;
max = j;
}
k++;
}
}
puts(str);
printf("最大子串在字符串中的位置是%d\n", start+1);
printf("最长子串长度%d\n", max);
for(i = start;i < max+start;i++)
printf("%c",str[i]);
printf("\n");
return 0;
}
char * s_gets(char * st, int n)
{
char * ret_val;
int i = 0;
ret_val = fgets(st, n, stdin);
if (ret_val)
{
while (st[i] != '\n'&&st[i] != '\0')
i++;
if (st[i] == '\n')
st[i] = '\0';
else
while (getchar() != '\n')
continue;
}
return ret_val;
}
结果如下:
please enter str:123sada2312414dfssd12315345
123sada2312414dfssd12315345
最大子串在字符串中的位置是20
最长子串长度8
12315345
请按任意键继续. . .
- C 最长数字子串
- 找最长数字子串
- 最长连续数字子串
- 字符串中最长的数字子串
- 求最长子串[C++]
- 【C++】在字符串中找出连续最长的数字子串
- 最长回文子串(C/C++)
- 最长上升子序列 最长公共子序列 最长公共子串 数字三角形 等简单DP以及变形
- 最长不重复子串 C C++
- C\C++最长回文子串
- C语言最长回文子串
- [BD-EXAM]求字符串的最长连续数字子串
- 查找字符串中最长的连续数字子串
- 求字符串中最长连续数字子串的长度
- 最长数字子串——学习总结
- 重写strcpy和最长的数字子串
- 求字符串中最长连续数字子串的长度
- 找出最长数字子串,并指出开始位置
- 第6节--决策树算法实现(scikit-learn)
- 可扩展Web架构与分布式系统(转)
- 流程绩效实战管理六步法
- 工业防火墙与传统防火墙的区别
- 基于ZooKeeper的Dubbo注册中心
- C 最长数字子串
- codeforces 378C MAZE
- hdu 1175 连连看 dfs
- Java API 与Hbase集群交互常用操作总结
- JavaScript 误区
- Java反射机制简析(简单实例)
- eclipse neon安装freemarker插件全新教程
- IO复用三种形式(select/poll/epoll)
- Linux C 文件操作及小结