【问题描述】输入一个以“#”符号结束的字符串(少于80个字符),将其中所出现过的大写英文字母都换成小写字母;若无大写英文字母,则输出“Not Found”。
【样例输入】FONTNAME and FILENAME#
【样例输出】fontname and filename
【样例输入】font and file124#
【样例输出】Not Found
【评分标准】输入字符串5分,大小写转换10分,输出字符串5分,共20分
#include <stdio.h>
int main() {
char str[80];
char c;
int i = 0;
int foundUpperCase = 0; // 用于标记是否找到大写字母
int j;
// 输入字符串,以'#'结束
while ((c = getchar()) != '#') {
str[i++] = c;//在这段代码中,str[i++] = c; 是一个表达式语句,
//其中 i++ 是一个后缀递增操作符,它的执行时机是在整个表达式被执行完毕后才会执行。
//也就是说,在这个语句中,首先将字符 c 赋值给 str[i],然后 i 的值递增1。
if (c >= 'A' && c <= 'Z') {
foundUpperCase = 1; // 如果输入中有大写字母,将标记设为1
}
}
str[i] = '\0'; // 在字符串末尾添加结束符
// 处理字符串,将大写字母转换为小写字母
for ( j = 0; str[j] != '\0'; j++) {
if (str[j] >= 'A' && str[j] <= 'Z') {
str[j] = str[j] + ('a' - 'A'); // 正确转换为小写字母
}
}
// 输出结果
if (!foundUpperCase) {
printf("Not Found\n");
} else {
printf("%s\n", str);
}
return 0;
}