C语言写一个函数,输入一行字符串,找出最短的单词
时间: 2024-02-24 12:58:50 浏览: 137
字符串合并函数-C语言入门教程ppt
可以使用C语言的字符串处理函数来实现该功能,具体步骤如下:
1. 定义一个字符串数组存储输入的一行字符串。
2. 使用C语言的`strtok()`函数将输入的一行字符串按照空格分割成若干个单词,并存储到一个单词数组中。
3. 遍历单词数组,找出最短的单词并记录其下标。
4. 输出最短的单词。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 输入字符串的最大长度
#define MAX_WORD_NUM 100 // 单词数组的最大长度
int main() {
char str[MAX_LEN];
char *words[MAX_WORD_NUM]; // 存储分割后的单词
int word_num = 0; // 单词数组的长度
int min_len = MAX_LEN; // 最短单词的长度
int min_index = -1; // 最短单词的下标
// 输入一行字符串
printf("请输入一行字符串:");
fgets(str, MAX_LEN, stdin);
str[strlen(str) - 1] = '\0'; // 去掉换行符
// 分割字符串为单词
char *p = strtok(str, " ");
while (p != NULL && word_num < MAX_WORD_NUM) {
words[word_num++] = p;
p = strtok(NULL, " ");
}
// 找出最短的单词
for (int i = 0; i < word_num; i++) {
int len = strlen(words[i]);
if (len < min_len) {
min_len = len;
min_index = i;
}
}
// 输出最短的单词
if (min_index != -1) {
printf("最短的单词是:%s\n", words[min_index]);
} else {
printf("未找到单词!\n");
}
return 0;
}
```
注意,上述代码只是一个简单的示例,实际应用中还需要考虑许多特殊情况,如输入字符串为空、只包含空格等。需要根据具体需求进行修改和完善。
阅读全文