c语言编写程序,从键盘输入一段小写的句子:i am a student.(每个单词间以一个空格间隔),要求将每个单词中的第一个字母改成大写字母,把变换后的句子输出到文件test11中。 【输入示例】 i am a student. 【输出示例】 文件test11中应为:I Am A Student.
时间: 2024-03-02 11:51:40 浏览: 81
练习 1-13 编写一个程序,打印输入中单词长度的直方图和垂直方向的直方图
好的,这道题目可以使用C语言的字符串操作函数来实现。具体的步骤如下:
1. 包含头文件stdio.h、stdlib.h、string.h,以及ctype.h(用于判断字符是否为小写字母)。
2. 定义一个字符数组来存储输入的句子,使用fgets函数从标准输入中读取输入的句子。
3. 定义一个指针变量来指向字符数组中的每个单词的首字母,使用strtok函数将句子分割成每个单词。
4. 对于每个单词,使用toupper函数将其第一个字符转换为大写字母。
5. 将变换后的单词添加到输出字符串中。
6. 将输出字符串写入文件test11中,使用fopen和fputs函数实现。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 100
int main()
{
char sentence[MAX_LEN];
char output[MAX_LEN];
char* word;
FILE* fp;
// 读取输入的句子
printf("请输入句子(每个单词间以一个空格间隔):\n");
fgets(sentence, MAX_LEN, stdin);
// 分割句子,并将每个单词的首字母大写后添加到输出字符串中
word = strtok(sentence, " ");
while (word != NULL)
{
word[0] = toupper(word[0]);
strcat(output, word);
strcat(output, " ");
word = strtok(NULL, " ");
}
// 将输出字符串写入文件中
fp = fopen("test11", "w");
if (fp == NULL)
{
printf("打开文件失败!\n");
exit(1);
}
fputs(output, fp);
fclose(fp);
printf("变换后的句子已写入test11文件中。\n");
return 0;
}
```
输入示例:
```
请输入句子(每个单词间以一个空格间隔):
i am a student.
```
输出示例:
```
变换后的句子已写入test11文件中。
```
test11文件中的内容为:
```
I Am A Student.
```
阅读全文