帮我用最简单的c语言函数找出一串字符串中最长的单词
以下是一个简单的C语言程序,可以找出一个字符串中最长的单词:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
char longest_word[MAX_LEN];
int longest_len = 0;
char *word;
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin);
// 查找最长的单词
word = strtok(str, " \n"); // 以空格和换行符分割字符串
while (word != NULL) {
int len = strlen(word);
if (len > longest_len) {
longest_len = len;
strcpy(longest_word, word);
}
word = strtok(NULL, " \n");
}
printf("最长的单词是:%s\n", longest_word);
return 0;
}
解释一下程序的原理:
- 首先定义一个字符串变量
str和一个长度为MAX_LEN的字符数组longest_word,用于存储最长的单词。 - 定义一个整型变量
longest_len,用于存储最长单词的长度。 - 使用
fgets函数从标准输入中读取一个字符串,并存储在str中。 - 使用
strtok函数依次遍历str中的单词,以空格和换行符为分隔符。 - 如果当前遍历到的单词的长度比
longest_len大,则更新longest_word和longest_len的值。 - 最后输出最长的单词。
需要注意的是,本程序中假设单词之间用空格或换行符分隔。如果需要考虑其他分隔符,可以在 strtok 函数的第二个参数中添加相应的字符。
原文地址: https://www.cveoy.top/t/topic/bK6A 著作权归作者所有。请勿转载和采集!