编写程序,输入一个字符串(该字符串由一个或多个空格分隔的单词构成),完成以下功能: 1. 判断该字符串中是否含有大写字母,如有输出“Yes”,否则输出“No”提示; 2. 请将字符串中每个单词的首字母变成大写字母后并输出该字符串。(用C语言解决
时间: 2024-09-14 15:17:33 浏览: 85
在C语言中,你可以通过以下几个步骤编写一个简单的程序来实现这两个功能:
1. 定义一个函数 `contains_uppercase` 来检查字符串是否有大写字母:
```c
#include <ctype.h> // 包含字符处理函数
int contains_uppercase(char *str) {
while (*str) { // 遍历整个字符串
if (isupper(*str)) { // 检查字符是否为大写字母
return 1; // 如果找到大写字母,返回1表示有
}
str++; // 移动到下一个字符
}
return 0; // 如果遍历完都没有找到大写字母,返回0
}
```
2. 定义另一个函数 `capitalize_words` 来转换每个单词的首字母为大写:
```c
#include <stdio.h>
#include <string.h>
void capitalize_words(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (i == 0 || str[i - 1] == ' ') {
str[i] = toupper(str[i]); // 转换首字母为大写
}
}
}
int main() {
char input[100];
printf("请输入一个字符串(空格分隔单词):");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串
// 删除字符串末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
if (contains_uppercase(input)) {
printf("Yes\n");
} else {
printf("No\n");
}
capitalize_words(input);
printf("转换后的字符串:%s", input);
return 0;
}
```
当你运行这个程序时,它会提示用户输入一个字符串,并按照描述的功能进行判断和操作。
阅读全文