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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kakade 中级黑马   /  2015-5-26 22:22  /  1125 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
#include<stdio.h>
int main()
{
        char str[];
        char *p;
        printf("请输入单词:\n");
        scanf("%s",str);
        c=sizeof(str[]);//计算字符串长度
        int b=0,temp=0,c=0;//分别表示一个单词的长度、最长单词的长度、c是最长单词末尾在字符串的位置
        for(int i = 0,i < c,i++)//
        {
                while(str[i] == ' ')//判断是否元素空格
                {
                        if(temp < b)//找出最长单词的长度
                        {
                                temp = b;//找出最长单词的字节数
                                c=i//c是最长单词末尾在字符串的位置
                        }
                         b = 0;//遇到空格就将前面单词的字节数置0
                }
                 if( str[i] == '\0')//判断是否还有单词
                {
                        int j = c-temp;//最长单词的首字母在字符串的位置
                        for(j,j < c,j++)
                        {
                                p = scanf(str[j]);//将最长单词存储到指针p
                               
                        }
                        printf("最长的单词是%s长度为%d",p,b);
                               
                }
                       
                        b++;
        }
        return 0;       
}

6 个回复

倒序浏览
看不懂....还没学呢...
回复 使用道具 举报
  1. while(str[i] == ' ')//判断是否元素空格
  2.                 {
  3.                         if(temp < b)//找出最长单词的长度
  4.                         {
  5.                                 temp = b;//找出最长单词的字节数
  6.                                 c=i//c是最长单词末尾在字符串的位置
  7.                         }
  8.                          b = 0;//遇到空格就将前面单词的字节数置0
  9.                 }
复制代码

亲,你这个循环里 i 就没有变化,如果不是空格怎么出来啊?
回复 使用道具 举报
坐观大神回答
回复 使用道具 举报
蜡笔小炎 发表于 2015-5-26 22:54
亲,你这个循环里 i 就没有变化,如果不是空格怎么出来啊?

如果 i 定义在外面呢
回复 使用道具 举报
蜡笔小炎 发表于 2015-5-26 22:54
亲,你这个循环里 i 就没有变化,如果不是空格怎么出来啊?

还有我想还有什么问题
回复 使用道具 举报
fixer 中级黑马 2015-5-27 06:26:43
7#
做过这一题,但是现在忘了...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马