找出字符串中最长数字字符串

        编程要求:输入一个带数字串的字符串,在字符串中,找到最长的数字字符串并且输出其长度、起始为止以及内容。

 

        本例程序中,我认为最主要的是需要在满足条件的时候,传递出合适的变量值,例如最长的数字字符串长度len和最长字符串的最后一位地址finloc,除此之外,是对再循环中的变量赋初值,例如最长数字字符串的长度len

        在我注释的一行内容,会使得程序在运行的时候,输出两行最长数字字符串;在只注释掉之后,只会出现一行,由此可以知道,主函数在调用函数的时候,调用一次,程序就执行一次,但是,之后return 返回的值不会打印出来,需要在主函数中编写打印语句;

        在上课过程中,虽然已经编写出来,但是在老师演示过程中,我认识到,在程序编写中,我应该更加注意增强程序可读性,应该多尝试用对应变量的英文单词缩写来表示变量,而不是一味地只使用I,j,k,m,n这一类变量名。

/*****************************************************

copyright (C), 2014-2015, Lighting Studio.Co.,     Ltd.

File name

AuthorJerey_Jobs    Version:0.1    Date:

Description

Funcion List:

*****************************************************/

 

#include <stdio.h>

#include <string.h>

 

int shuzi(char *s);

 

int main()

{

   char s[1024];

         printf("Enterthe string : ");

         scanf("%s",s);

         printf("%s\n",s);

//      shuzi(s);

         printf("Themax is %d numbers\n",shuzi(s));

   return 0;

}

 

int shuzi(char *s)

{

         inti,j = 0,max = 0,len = 0,finloc = 0;

         j= strlen(s);

         for(i= 0;i < j;i++)

         {

                   len= 0;

                   while((s[i]>= 48) && (s[i] <= 57))

                   {

                            len++;

                            i++;

                   }

       if(len > max)

                   {

                            max= len;

                            finloc= i;

                   }

         }

         printf("thestring is :");

         for(i= finloc-max;i < finloc;i++)

         {

                   if((s[i]>= 48) && (s[i] <= 57))

                   {

                            printf("%c",s[i]);

             }

         }

         printf("\n");

         printf("Thelocation is %d",finloc-max+1);

         printf("\n");

         returnmax;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值