C++输入一行字符,以‘*’结尾,将其中的大写英文字符转换为小写,其他不变,输出。
时间: 2023-09-24 20:08:57 浏览: 47
可以使用C++中的字符数组来实现这个功能,具体代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
char str[100]; // 定义一个字符数组
cin.getline(str, 100, '*'); // 读取一行字符,以'*'结尾
int len = strlen(str); // 计算字符数组的长度
for (int i = 0; i < len; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') { // 判断是否为大写英文字母
str[i] = str[i] + 32; // 转换为小写字母
}
}
cout << str << endl; // 输出转换后的字符串
return 0;
}
```
以上代码中,我们使用了C++中的`cin.getline()`函数来读取一行字符,以'*'结尾。然后,我们遍历整个字符数组,如果遇到大写英文字母,就将其转换为小写字母。最后,输出转换后的字符串。
相关问题
c++.输入一行字符,以‘#’结尾,将其中的小写英文字符转换为大写并输出(注意只输出所有英文字符)。 输出格式提醒:注意只输出这一行字符中的英文字符(既包括原本是大写的也包括小写转换成大写的),最后输出回车换行。
可以使用 `islower()` 和 `toupper()` 函数来实现字符大小写转换,具体如下:
```c++
#include <iostream>
#include <cctype> // 包含 islower() 和 toupper() 函数
using namespace std;
int main() {
char c;
cin >> noskipws; // 不忽略空格
while (cin >> c && c != '#') {
if (islower(c)) { // 如果是小写字母
cout << char(toupper(c)); // 转换为大写字母输出
} else if (isupper(c)) { // 如果是大写字母
cout << c; // 直接输出
}
}
cout << endl; // 输出回车换行
return 0;
}
```
这里使用了 `noskipws` 控制标志来关闭默认的忽略空格功能,这样可以保证读取到所有的字符。在读入字符时,如果是小写字母,则使用 `toupper()` 函数将其转换为大写字母并输出;如果是大写字母,则直接输出;其他字符则忽略。
C加加实现输入一串字符大写转换成小写小写转换成大写其他字符原样输出
```c++
#include <iostream>
using namespace std;
int main() {
char c;
while(cin >> c) {
if(c >= 'a' && c <= 'z') {
c = c - 'a' + 'A';
} else if(c >= 'A' && c <= 'Z') {
c = c - 'A' + 'a';
}
cout << c;
}
return 0;
}
```
说明:
1. 通过 `cin` 读取字符,如果读取到文件结尾或遇到输入错误将退出循环。
2. 判断字符的大小写,如果是小写字母将其转换为大写字母,如果是大写字母将其转换为小写字母。
3. 输出转换后的字符。