题目
本题是谭浩强《C程序设计课后习题》题7.10。
题目:
写一个函数,输入一行字符,将此字符串中最长的单词输出。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
已标注在代码注释部分
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
void findmax(char str[], char max[])
{
int i, j;
i = j = 0;
int len = 0;
while (str[i])
{
j = i;//j等于当前单词的起始位置
while (str[j] != ' ' && str[j])//寻找当前单词的末尾处
j++;
len = j - i;//计算当前单词的长度
if (len > strlen(max))//判断当前单词是否为最大长度
strncpy(max, str + i, len);//是最大长度就拷贝到max中
j++;//计算下一个单词,当前j指向下一个单词的起始处
i = j;//将i也指向下一个单词的起始处
}
}
void main()
{
char str[256] = { 0 };
char max[256] = { 0 };//字符数组一定要先初始化再使用
printf("请输入一行数据,单词之间使用空格分隔:\n");
gets(str);
findmax(str, max);//函数运行完毕后,max数组中存放的是最长单词
printf("最长的单词为:%s", max);
}
三、执行结果
输入:
请输入一行数据,单词之间使用空格分隔:
Sending charcoal in the snow is better than icing on the cake
输出:
最长的单词为:charcoal