用c语言输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出已输入的字符,其中所有单词的首字母已改为大写。
时间: 2024-10-24 11:07:04 浏览: 31
C语言程序设计-将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用’.’结束输入; .c
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,我们需要读取用户的输入作为一行字符。可以使用`fgets()`函数从标准输入流(stdin)获取用户输入。
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LINE_LENGTH 100 // 设置最大输入长度
char line[MAX_LINE_LENGTH];
int main() {
fgets(line, MAX_LINE_LENGTH, stdin);
line[strlen(line) - 1] = '\0'; // 将换行符替换为结束符
}
```
2. 然后遍历输入的字符串,对于每一个单词的首字母,检查是否需要转换成大写。我们可以借助`islower()`函数判断字符是否为小写字母,并使用`toupper()`将其转换为大写。
```c
for (int i = 0; i < strlen(line); ++i) {
if (i == 0 || isspace(line[i - 1])) { // 检查开始位置或前一个字符是空格
if (i > 0 && !isspace(line[i - 1])) { // 如果不是第一个字符,且前一个字符不是空格,则转换首字母
line[i] = toupper(line[i]);
}
}
}
```
3. 最后,打印处理后的字符串。
```c
printf("%s", line);
```
完整代码示例:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LINE_LENGTH 100
int main() {
char line[MAX_LINE_LENGTH];
fgets(line, MAX_LINE_LENGTH, stdin);
line[strlen(line) - 1] = '\0';
for (int i = 0; i < strlen(line); ++i) {
if (i == 0 || isspace(line[i - 1])) {
if (i > 0 && !isspace(line[i - 1])) {
line[i] = toupper(line[i]);
}
}
}
printf("%s", line);
return 0;
}
阅读全文