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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. #include<stdio.h>
  2. int maxWord(char str[]);
  3. int main()
  4. {
  5.         char a[]="You cannot change what you refuse to confront";
  6.         maxWord(a);

  7.         return 0;
  8. }
  9. int maxWord(char str[])

  10. {
  11.         int i = 0,max = 0,d = 0,c = 0;  
  12.         while (str[i] != '\0')
  13.         {               
  14.           int n = 0;
  15.           while (str[i] != ' ' && str[i] != '\0' )
  16.           {         
  17.                   n ++;      
  18.                   i ++;         
  19.           }      
  20.           if (n > max)
  21.           {   
  22.                   max = n;
  23.                   c = i;
  24.                   d = i - n;   
  25.                   printf("%d\n",d);
  26.           }   
  27.           i++;  
  28.         }   
  29.   printf("最长单词的长度为:%d\n",max);
  30.   printf("最长的单词为:");  
  31.   for ( i = d ; i <= c- 1; i ++)
  32.   {        printf("%c",str[i]);

  33.   }       
  34.   printf("\n");
  35.         return max;

  36. }
复制代码



QQ图片20141212155017.jpg (21.89 KB, 下载次数: 29)

步骤就点下图标然后粘贴上就行了

步骤就点下图标然后粘贴上就行了

9 个回复

倒序浏览
对了竟然没错!!我擦,这坑人啊!
回复 使用道具 举报
18行str[i] == '\0'而退出循环 30行i++;会不会越界啊
回复 使用道具 举报
从今以后 发表于 2014-12-12 16:46
18行str == '\0'而退出循环 30行i++;会不会越界啊

看第十五行
回复 使用道具 举报
:L不就是用<>里面粘贴就可以了吗?
回复 使用道具 举报
邹志鹏 发表于 2014-12-13 10:26
不就是用里面粘贴就可以了吗?

是,第一次写博客贴代码,
回复 使用道具 举报

我的意思是18行已经str == '\0'了 30又i++ '\0'之后的值是未知的啊
回复 使用道具 举报
从今以后 发表于 2014-12-13 13:49
我的意思是18行已经str == '\0'了 30又i++ '\0'之后的值是未知的啊

当i=最后一个字符也就是\0的时候,他已经跳出最外面的while循环去了,不会再进循环体了
回复 使用道具 举报
chasedream 发表于 2014-12-13 21:39
当i=最后一个字符也就是\0的时候,他已经跳出最外面的while循环去了,不会再进循环体了 ...

while (str != ' ' && str != '\0' ) 如果是在这里i='\0'  后面肯定会遇到30行的i++; 啊 这时候已经越界了吧 然后判断while (str != '\0') str这时候是什么就未知了呀
回复 使用道具 举报
从今以后 发表于 2014-12-14 00:56
while (str != ' ' && str != '\0' ) 如果是在这里i='\0'  后面肯定会遇到30行的i++; 啊 这时候已经越界 ...

用实例证明下,当判断完最后一个字符t时候,i++;这时候i会指向\0,然后会调到whlie(str!='\0');条件为假,会跳出循环,不会继续执行i++了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马