用c++输⼊⼀个字符串,将字符串中⼤写字⺟全部转为⼩写字⺟,⼩写字⺟转成⼤写字⺟,其他字符保持不 变。注:字符串的⻓度⼩于等于30,其中字符串中包含空格
时间: 2024-10-12 17:08:27 浏览: 28
在C++中,你可以通过使用标准库中的`std::transform`函数以及`std::isalpha`、`std::toupper`和`std::tolower`函数来实现这个功能。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
std::string swap_case(std::string input) {
std::transform(input.begin(), input.end(), input.begin(), ::tolower); // 转换小写字母
for (char& c : input) {
if (std::isupper(c)) { // 检查是否为大写字母
c = ::toupper(c); // 如果是,则转换为大写
}
}
return input;
}
int main() {
std::string str;
std::cout << "请输入一个字符串(长度小于等于30,可能包含空格): ";
getline(std::cin, str);
std::string result = swap_case(str);
std::cout << "转换后的字符串: " << result << "\n";
相关问题
用c++输⼊⼀个字符串,将字符串中⼤写字⺟全部转为⼩写字⺟,⼩写字⺟转成⼤写字⺟,其他字符保持不 变。注:字符串的⻓度⼩于等于30,其中字符串中包含空格
在C++中,你可以使用标准库中的`std::transform`函数配合`std:: toupper`和`std::tolower`来进行这个转换。这里是一个简单的示例程序:
```cpp
#include <iostream>
#include <algorithm>
#include <cctype> // 包含转换函数
void swap_case(std::string &str) {
std::transform(str.begin(), str.end(), str.begin(), ::tolower); // 转换小写
for (char& c : str) {
if (isalpha(c)) { // 检查是否为字母
if (islower(c)) {
c = toupper(c); // 如果是小写转大写
}
}
}
}
int main() {
std::string input;
std::cout << "请输入一个字符串(长度小于等于30,包含空格):";
getline(std::cin, input); // 读入整个行,包括空格
if (input.length() > 30) {
std::cerr << "输入过长,已截断到30个字符。\n";
input.resize(30);
}
swap_case(input);
std::cout << "转换后的字符串是:" << input << "\n";
return 0;
}
```
在这个程序中,我们首先读取用户输入的字符串,然后使用`std::transform`和`::tolower`把所有字符都变为小写。接着遍历字符串,对每个字母判断其大小写并进行相应的转换。
请注意,由于限制了字符串长度为30,如果输入超过这个长度,程序会截断超出的部分并发出警告。
用c++定义一个字符串,分别统计该字符串中大写字母、小写字母和数字字符的个数,并输出统计结果(利用函数实现) 如输入字符串: ABab123cdAB,则大写字 母的个数为4,小写字母 的个数为4,数字字符的 个数为3.
以下是用C++函数实现的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
void count(string str, int &upper, int &lower, int &digit)
{
for(char c : str)
{
if(c >= 'A' && c <= 'Z')
upper++;
else if(c >= 'a' && c <= 'z')
lower++;
else if(c >= '0' && c <= '9')
digit++;
}
}
int main()
{
string str = "ABab123cdAB";
int upper = 0, lower = 0, digit = 0;
count(str, upper, lower, digit);
cout << "大写字母的个数为" << upper << endl;
cout << "小写字母的个数为" << lower << endl;
cout << "数字字符的个数为" << digit << endl;
return 0;
}
```
输出结果为:
```
大写字母的个数为4
小写字母的个数为4
数字字符的个数为3
```
阅读全文