用C语言编写程序,输入一个字符串(该字符串由一个或多个空格分隔的单词构成),完成以下功能: 1. 判断该字符串中是否含有大写字母,如有输出“Yes”,否则输出“No”提示; 2. 请将字符串中每个单词的首字母变成大写字母后并输出该字符串。
时间: 2025-06-14 17:17:51 浏览: 11
在C语言中,可以使用`ctype.h`库来判断字符是否为大写字母,并使用`strtok()`函数和`toupper()`函数来处理字符串。下面是实现这个功能的一个示例程序:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize_words(char *str) {
char *token;
token = strtok(str, " "); // 使用空格作为分隔符
while (token != NULL) {
if (isupper((unsigned char)*token)) { // 判断首字母是否为大写
printf("%s", token); // 如果有大写字母直接输出
printf("Yes\n");
break; // 找到大写字母后结束处理
} else {
for (int i = 0; i < strlen(token); ++i) {
if (isalpha((unsigned char)token[i])) { // 只转换首字母
token[i] = toupper(token[i]);
break;
}
}
printf("%s ", token);
}
token = strtok(NULL, " ");
}
}
int main() {
char input[100];
printf("Enter a string with words separated by spaces: ");
fgets(input, sizeof(input), stdin);
// 移除fgets读取的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
capitalize_words(input);
return 0;
}
```
运行此程序时,按照提示输入一个包含空格分隔单词的字符串,它会检查其中是否有大写字母,并将每个单词的首字母转成大写。如果找到大写字母,程序会立即停止并输出"Yes"。
阅读全文
相关推荐


















