本帖最后由 流风124 于 2015-4-18 19:24 编辑
你看看吧,这是我写的,水平有限,仅供参考,要东西的话,把你的邮箱发给我,我的本上没装QQ
- #include <stdio.h>
- #include <string.h>
- #define MAXSIZE 50
- //全局变量:最长单词的长度
- int maxlength = 0;
- //函数:取得最长单词
- void GetLongest(char t[],char l[])
- {
- //判断:如果新取得的单词长度 > 当前最长单词长度
- if (strlen(t) > maxlength)
- {
- //将新取得的单词赋值给最长单词
- strcpy(l, t);
- //取得最长单词长度
- maxlength = (int)strlen(l);
- }
- }
- int main(int argc, const char * argv[])
- {
- //1.定义1个已知的字符串
- char original[] = "This is Test5's original source Please find the longest word in these sentences";
- //2.定义1个存储最长单词的字符串变量
- char longest[MAXSIZE] = "";
- //3.定义1个中间变量存储每一个单词
- char temp[MAXSIZE] = "";
- int i = 0,j=0;
- //打印原始字符串
- printf("已知的字符串是:%s\n",original);
- //遍历字符串
- while (original[i])
- {
- //当遇到分隔符space的时候,获得最长单词,并且重新开始取得下一个单词
- if (original[i] == ' ')
- {
- //获得最长单词
- GetLongest(temp,longest);
- //重新开始取得下一个单词
- j = 0;
- i++;
- //跳出本次循环
- continue;
- }
- //将字符串中的字符赋值给中间变量(temp[j] = original[i]),并且开始下一个字符的判断(j++;i++)
- temp[j++] = original[i++];
- //结尾添加字符串标志
- temp[j]='\0';
- }
- //字符串结尾(‘\0’)时,进行最后一个单词的判断
- GetLongest(temp,longest);
- //打印最长单词及其长度
- printf("最长的单词是:%s\t长度是%d\n",longest,maxlength);
-
-
- return 0;
- }
复制代码 |