今天我们来完成一个比较有意思的程序。
题目:输入一个字符串,找出最长的数字子串,并指出从第几个字符开始的
这个题目的思路 第一:求最长的子串maxlen;
第二:确定子串的起始位置;
第三输出子串
下面我附上我的代码
<pre class="plain" name="code">#include <stdio.h>
int main()
{
char str[50];
int len = 0;
int max = 0;
int i = 0;
int k = 0;
int flag = 1;
int loc;
char *ptr;
printf("input the string!\n");
scanf("%s",str);
ptr = str;
while(str[i] != '\0')
{
if(str[i] < '0' || str[i] > '9')
{
if(len > max)
{
max = len;
loc = k;
flag = 1;
}
if(flag == 0)
{
flag = 1;
}
len = 0;
i++;
}
else
{
if(flag)
{
k = i;
flag = 0;
}
len++;
i++;
}
}
if(len > max)
{
max = len;
loc = k;
flag = 1;
}
printf("max = %d\nloc = %d\n",max,loc);
printf("the long string is:\n");
for(i = loc; i < loc + max; i++)
{
printf("%c",str[i]);
}
printf("\n");
return 0;
}
下面附上我的运行图