从键盘输入一个包含多个单词的字符 串,将每个单词从字符串中分离出来保存,并且单词首字母大写。用简单c语言完成
时间: 2024-05-03 17:16:30 浏览: 138
可以使用C语言的字符串操作函数和循环语句来实现这个功能。下面是一个简单的示例代码:
```
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入一个包含多个单词的字符串:");
fgets(str, 100, stdin);
char *token = strtok(str, " ");
while (token != NULL) {
// 首字母大写
token[0] = toupper(token[0]);
printf("%s ", token);
token = strtok(NULL, " ");
}
return 0;
}
```
代码中使用了 `strtok` 函数来分割字符串,并且使用 `toupper` 函数将每个单词的首字母大写。其中,`str` 是保存用户输入字符串的数组,`fgets` 函数用于从标准输入读取用户输入。另外,由于每个单词的长度不确定,因此数组大小需要预留一定的空间,这里我们设置为100。
相关问题
用C语言从键盘输入一个包含多个单词字符串,将每个单词分离出来并保存,并且单词首字母大写
好的,可以使用C语言中的字符串处理函数来实现。具体步骤如下:
1. 定义一个字符串数组来保存输入的字符串,如:
```c
char input_str[100];
```
2. 使用scanf函数从键盘读取输入的字符串,如:
```c
scanf("%[^\n]", input_str);
```
这里使用了scanf的格式控制符"%[^\n]",表示读取输入直到遇到换行符为止。
3. 定义一个指针变量来指向输入的字符串,如:
```c
char *p = input_str;
```
4. 使用循环逐个遍历字符串中的字符,如果遇到空格或换行符,则将前面的字符作为一个单词保存,并且将单词首字母大写,如:
```c
while (*p != '\0') {
if (*p == ' ' || *p == '\n') { // 遇到空格或换行符
*p = '\0'; // 在该位置插入字符串结束符
printf("%c%s ", toupper(*(p - strlen(p) + 1)), p - strlen(p) + 1);
p++; // 指向下一个单词的开头
}
else {
p++;
}
}
```
这里使用了字符串处理函数strlen和toupper。其中,*(p - strlen(p) + 1)表示当前单词的首字母,toupper函数将其转换为大写字母,然后使用printf函数输出。
完整代码示例:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char input_str[100];
printf("请输入一个包含多个单词的字符串:");
scanf("%[^\n]", input_str);
char *p = input_str;
while (*p != '\0') {
if (*p == ' ' || *p == '\n') { // 遇到空格或换行符
*p = '\0'; // 在该位置插入字符串结束符
printf("%c%s ", toupper(*(p - strlen(p) + 1)), p - strlen(p) + 1);
p++; // 指向下一个单词的开头
}
else {
p++;
}
}
return 0;
}
```
从键盘输入一个包含多个单词的字符串,将每个单词从字符串中分离出来保存,并且单词首字母大写。
好的,可以使用Python编写一个程序来解决这个问题。以下是代码示例:
```python
input_str = input("请输入一个包含多个单词的字符串:")
words = input_str.split() # 通过split()方法将字符串分割成单词列表
for i in range(len(words)):
words[i] = words[i].capitalize() # 将每个单词的首字母大写
print("分离后的单词列表为:", words)
```
运行程序后,你可以输入一个包含多个单词的字符串,程序将会将字符串分割成单词列表,并将每个单词的首字母大写,最终输出分离后的单词列表。
阅读全文