A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flora时光 中级黑马   /  2016-4-9 22:54  /  1066 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

还有没有其他更好的方法可以得到字符串中最大字符串长度???

  1. #include<stdio.h>
  2. #include<string.h>
  3. //定义函数如果是字母返回值1,
  4. int alpha(char c)
  5. {
  6.     if(c>='a'&&c<='z'||c>='A'&&c<='Z')
  7.         return 1;
  8.     else
  9.         return 0;
  10. }
  11. int main()
  12. {
  13.     int i;
  14.     int point;//每个单词开始的位置
  15.     int pointer;
  16.     int place;//保存每次比较后最长单词的位置
  17.     int len;//统计每个单词长度
  18.     int length;//保存比较后最长的单词长度
  19.     int num;//单词数量
  20.     char str[1001];
  21.     printf("请输入一个字符串:\n");
  22.     while(gets(str))
  23.     {
  24.         int flag=1;//是个旗帜,判断是空格还是单词
  25.         len=length=num=0;
  26.         for(i=0;i<=strlen(str);i++)
  27.         {
  28.             if(!alpha(str[i]))//str[i]是空格
  29.             {
  30.                 if(len>length)
  31.                 {
  32.                     length=len;
  33.                     place=point;
  34.                 }
  35.                 flag=1;
  36.                 len=0;
  37.             }
  38.             else//不是空格
  39.             {
  40.                 if(flag)
  41.                 {
  42.                     point=i;
  43.                     num++;
  44.                 }
  45.                 len++;
  46.                 flag=0;

  47.             }
  48.         }
  49.         printf("最大字符串是:");
  50.         for(i=place;i<place+length;i++)
  51.             {
  52.                 printf("%c",str[i]);
  53.             }
  54.         printf("\n");
  55.         printf("最大字符串长度:%d\n",length);
  56.         printf("单词个数:%d\n",num);
  57.         break;

  58.     }

  59.     return 0;
  60. }

复制代码


4 个回复

倒序浏览
研究中!!
回复 使用道具 举报
值得研究研究
回复 使用道具 举报
很吊啊,这题目还是右难度的
回复 使用道具 举报
值得研究 加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马