输入一个英文句子将每单词第一个字母改写文大写字母C语言代码
时间: 2024-12-25 18:31:26 浏览: 3
在C语言中,你可以使用`ctype.h`库中的`toupper()`函数配合循环结构来实现首字母大写的转换。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize_first_letter(char *str) {
if (str[0] != '\0') { // 避免空字符串
str[0] = toupper(str[0]); // 转换第一个字符
}
for (int i = 1; str[i] != '\0'; i++) {
str[i] = tolower(str[i]); // 其他字符转小写
}
}
int main() {
char sentence[] = "hello world, this is a test.";
capitalize_first_letter(sentence);
printf("Capitalized sentence: %s\n", sentence);
return 0;
}
```
这个程序会接收一个英文字符串`sentence`作为输入,并将每个单词的第一个字母变成大写,其余字母变为小写。
相关问题
用C语言输入一个英文句子,仅包含字母和空格,将每个单词的第一个字母改写为大写字母,请使用数组和循环
在C语言中,你可以使用字符数组来存储输入的英文句子,并结合循环结构如`for`来处理每个单词。这里是一个简单的示例,使用`strtok`函数来分隔单词:
```c
#include <stdio.h>
#include <string.h>
void capitalize_first_char(char* sentence) {
char token;
char* word = strtok(sentence, " "); // 分割单词,空格作为分隔符
while (word != NULL) { // 遍历所有单词
if (*word) { // 检查非空单词
*word = toupper(*word); // 将第一个字符转为大写
word++; // 移动到下一个位置
}
sentence = strtok(NULL, " "); // 继续分割,直到结束
if (sentence == NULL) break; // 如果没有更多单词,退出循环
word = strtok(sentence, " "); // 从当前剩余部分开始寻找下一个词
}
}
int main() {
printf("请输入一个英文句子:");
fgets(sentence, sizeof(sentence), stdin); // 读取用户输入
sentence[strcspn(sentence, "\n")] = '\0'; // 清除换行符
capitalize_first_char(sentence);
printf("处理后的句子:%s\n", sentence);
return 0;
}
```
在这个程序中,`capitalize_first_char`函数首先通过`strtok`获取单词,然后使用`toupper`函数将每个单词的第一个字母转换为大写。`main`函数负责接收用户的输入并调用这个函数。
首字母变大写:输入一个英文句子,将每个单词的第一个字母改成大写字母。 【输入形式】一个长度不超过100的英文句子【输出形式】按照要求改写后的英文句子,每个单词的首字母大写(用C语言
在C语言中,可以使用标准库函数如`ctype.h`提供的`toupper()`函数以及一些字符串处理技巧来实现首字母大写的转换。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 将给定字符转换为大写
char to_upper(char c) {
return c >= 'a' && c <= 'z' ? c + ('A' - 'a') : c;
}
// 首字母大写函数
void capitalize_sentence(char *sentence) {
if (sentence != NULL) {
size_t length = strlen(sentence);
if (length > 0) {
sentence[0] = to_upper(sentence[0]); // 转换第一个字符
for (size_t i = 1; i < length; i++) {
if (sentence[i - 1] == ' ' || sentence[i - 1] == '\0') { // 检查前一个字符是否为空格
sentence[i] = to_upper(sentence[i]);
}
}
}
}
}
int main() {
char input[101];
printf("请输入一个英文句子 (不超过100个字符): ");
fgets(input, sizeof(input), stdin); // 从用户输入获取句子
// 去除fgets留下的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
capitalize_sentence(input);
printf("转换后的句子: %s", input);
return 0;
}
```
当运行此程序时,它会提示用户输入一个英文句子,然后将每个单词的首字母转换为大写。
阅读全文