编写C++函数去除字符串中包含的非字母字符(不包括空格),并将小写字母转换成大写字母。注意,不在函数中输出,输入输出应在主函数中进行。 输入格式: 待转换的字符串,字符串间会包含空格,长度不超过200。 输出格式: 转换后的字符串。 输入样例: happy new year! 输出样例: HAPPY NEW YEAR
时间: 2023-06-11 07:06:51 浏览: 115
以下是一个简单的实现:
```c
#include <stdio.h>
#include <ctype.h>
void clean_string(char *str) {
char *p = str;
while (*p != '\0') {
if (!isalpha(*p) && *p != ' ') {
// 非字母字符,删除
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else if (islower(*p)) {
// 小写字母,转换成大写字母
*p = toupper(*p);
} else {
// 其他情况,继续遍历
p++;
}
}
}
int main() {
char str[201];
fgets(str, 201, stdin);
clean_string(str);
printf("%s", str);
return 0;
}
```
解释:
1. `clean_string` 函数用于去除字符串中的非字母字符并将小写字母转换成大写字母。
2. 主函数中使用 `fgets` 从标准输入读取待转换的字符串。
3. 调用 `clean_string` 函数处理字符串。
4. 使用 `printf` 输出转换后的字符串。
阅读全文