写一个函数,输入一串字符串,将该字符串中最长的单词输出

谭浩强第五版216页第10题

解题思路:

1.在输入字符串后,遍历时遇见空格则用一个数组将空格之前的单词长度记下来,并用另一个数组接收该单词的下标

2.将记录长度的数组遍历一遍,找到最长单词的长度,此时另一数组的此下标就是它在总数组的位置 

3.按照下标输出这个单词 

代码实现:

int main()
{
	char s[100];								//字符串所在数组
	int a[10] = { 0 };							//记录每个单词长度的数组
	int b[10] = { 0 };							//记录每个单词的位置的数组
	int i = 0;				                    //i,j都是循环变量
	int j = 0;
	int max = 0;			                    //max接收第二个数组最大值
	int tmp = 0;			                    //接收最长单词的下标
	gets_s(s);				                    //输入字符串	
	while (1)
	{
		
		if (s[i] != ' ' && s[i] != '\0')		//没找到空格后将记录前一个单词长度
		{
			a[j]++;
		}
		else if (s[i] == ' '|| s[i] == '\0')	//找到空格记录每个单词下标
		{
			b[j] = i - a[j];                    //将单词下标记录到b数组中
			j++;
			if (s[i] == '\0')					//读到\0终止循环
			break;
		}
		i++;									//保持继续读写下去
	}
	
	for (i = 0; i <= j; i++)					//由于a数组每个元素记录单词长度
	{											//找出最长的下标
		if (max < a[i])						
		{
			max = a[i];
			tmp = i;							//此下标也是该单词所在下标
		}
	}
	for (i = b[tmp]; s[i] != ' ' && s[i] != '\0'; i++)		//输出该单词
		printf("%c",s[i]);
}

运行:

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用以下函数实现: ```python def longest_word(sentence): # 将句子按空格分割成单词列表 words = sentence.split() # 初始化最长单词为空字符串 longest = "" # 遍历单词列表,比较每个单词的长度,更新最长单词 for word in words: if len(word) > len(longest): longest = word # 返回最长单词 return longest ``` 使用示例: ```python sentence = "I love Python programming language" longest = longest_word(sentence) print(longest) # 输出 "programming" ``` ### 回答2: 实现这个函数的基本思路是通过循环遍历整个字符串,检查每个单词的长度并把长度最长单词存下来然后输出。 具体步骤如下: 1. 定义一个函数输入一个字符串: ```python def find_longest_word(sentence): # 代码实现 ``` 2. 分割字符串,将字符串按照空格划分为单词列表: ```python words = sentence.split() ``` 3. 遍历单词列表,找出其长度最长单词: ```python longest_word = "" for word in words: if len(word) > len(longest_word): longest_word = word ``` 4. 输出最长单词: ```python print("The longest word is:", longest_word) ``` 完整代码如下: ```python def find_longest_word(sentence): words = sentence.split() longest_word = "" for word in words: if len(word) > len(longest_word): longest_word = word print("The longest word is:", longest_word) ``` 使用示例: ```python find_longest_word("I love programming and enjoy solving problems.") # 输出:The longest word is: programming ``` 注意事项: - 输入字符串可能有标点符号或其他特殊字符,需要考虑如何去除这些干扰因素; - 如果有多个长度相同的最长单词,只输出任意一个; ### 回答3: 题目要求编一个函数,要求输入一个字符串,并且输出字符串最长单词。那么我们该如何实现呢? 首先,我们需要明确一下,什么是单词。通常情况下,单词是由一系列的字母组成,它们之间由空格或符号进行分隔。因此,我们可以根据这个特点来进行字符串的分割操作。 在实现,我们可以使用字符串的split方法,将字符串按照空格分割成一个单词列表。然后,我们就可以遍历这个单词列表,找到其最长的那个单词。 在遍历的过程,我们可以记录当前最长单词,同时比较当前遍历到的单词是否比它更长,如果是,则更新最长单词的值。最后,我们将找到的最长单词返回即可。 下面是一个具体的实现过程: ``` def longest_word(str): # 用空格进行分词 words = str.split() # 初始化最长单词 longest = "" # 遍历单词列表 for word in words: # 如果当前单词最长单词还要长,则更新最长单词的值 if len(word) > len(longest): longest = word return longest ``` 需要注意的是,这里的实现并没有考虑到一些特殊情况,例如字符串可能存在标点符号或者换行符等,需要根据具体情况进行处理。 总的来说,此问题的解决需要对字符串的基本操作熟练掌握,同时需要对编程常用的容器类有一定的了解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值