用c语言从键盘输入一个包含多个单词的字符串,将每个单词从字符串中分离出来保存,并且单词首字母大写。
时间: 2024-05-13 20:13:59 浏览: 12
可以按照以下步骤实现:
1. 定义一个字符数组来存储输入的字符串。
2. 从键盘读取输入的字符串,可以使用 `fgets()` 函数。
3. 定义一个指针数组,用于存储每个单词的首地址。
4. 使用 `strtok()` 函数将字符串分割成单词,并将每个单词的首地址保存到指针数组中。
5. 遍历指针数组,将每个单词的首字母转换为大写。
下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char input[MAX_LEN];
char *words[MAX_LEN];
printf("请输入一个字符串:\n");
fgets(input, MAX_LEN, stdin);
int count = 0;
char *token = strtok(input, " ");
while (token != NULL) {
words[count++] = token;
token = strtok(NULL, " ");
}
printf("分离出的单词有%d个:\n", count);
for (int i = 0; i < count; i++) {
char *word = words[i];
printf("%s ", word);
// 将首字母转换为大写
word[0] = toupper(word[0]);
printf("-> %s\n", word);
}
return 0;
}
```
在上面的代码中,我们使用了 `strtok()` 函数来将字符串分割成单词,使用了 `toupper()` 函数将每个单词的首字母转换为大写。注意,`strtok()` 函数会修改原始字符串,因此需要备份原始字符串。