如何保存输入的一串单词并遍历选择最长和最短的单词?C语言
时间: 2024-09-15 09:06:09 浏览: 31
在C语言中,你可以通过动态内存分配和字符串操作来保存一串单词并找到最长和最短的单词。下面是一个简单的步骤示例:
1. **获取用户输入**:
使用`fgets()`函数从标准输入读取一行,将用户输入存储在一个字符数组中。
```c
char input[100];
fgets(input, sizeof(input), stdin);
```
2. **分割单词**:
用空格`' '`作为分隔符,使用`strtok()`函数分解输入字符串为单词。
```c
char *token = strtok(input, " ");
while (token) {
// token就是当前的单词
// ...
token = strtok(NULL, " ");
}
```
3. **动态分配和保存单词**:
对于每个单词,可以使用`malloc()`动态分配空间,并复制单词内容。
```c
while (token) {
size_t word_length = strlen(token);
char *word_copy = malloc(word_length + 1); // 加1 for the null terminator
strcpy(word_copy, token);
// ...处理最长和最短单词
free(word_copy); // 在程序结束前记得释放内存
token = strtok(NULL, " ");
}
```
4. **比较单词长度**:
为了找出最长和最短的单词,你需要两个指针分别记录目前最长和最短的单词及其长度,然后更新它们。
5. **遍历结束后释放所有动态内存**:
遍历完成后,别忘了释放之前为每个单词分配的空间。
6. **显示结果**:
最后打印最长和最短的单词。
注意:在实际应用中,这只是一个基本的例子,实际程序需要考虑到错误处理(如无效输入),以及在循环结束后的内存清理。
阅读全文