黑马程序员技术交流社区
标题:
大家来找错4
[打印本页]
作者:
WANGJIAO
时间:
2014-10-23 19:43
标题:
大家来找错4
本帖最后由 WANGJIAO 于 2014-10-24 10:29 编辑
这样写为什么有时候可以,有时候不可以?大神快来救我~
// 在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
//提示输入
printf("输入已知字符串:\n");
//接收数据
char str[200];
gets(str);
//分别定义变量来存储需要数据
int a = 0, b = 0, m = 0, max = 0;
//判断是否空格,以此来计算单词长度
for (int i = 0; i < strlen(str); i++) {
if (str[i] == ' '||str[i]=='\0'){
//b = 0,第一次出现空格的下标减去零再减1,得到的字符串长度
a = (i - b)-1 ;
//把第一个空格的下标值赋给变量b保存
b = i;
//判断并存储最大值
if (max < a) {//把每一个字符串的长度与之前定义字符串长度的最大值比较
//储存最大值
max = a;
//存储最长字符串后面空格的下标
m = i;
}
}
}
printf("最长的单词是:");
for (int i = m-max; i < m; i++) {
//输出最长单词
printf("%c", str[i]);
}
//换行,美观
printf("\n");
//输出长度
printf("长度为:%d\n",max);
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2