C++ 把一串字符串的大小写互换
时间: 2024-09-07 09:01:27 浏览: 86
在 C++ 中,要将字符串的大小写互换,你可以遍历字符串中的每个字符,然后使用 ASCII 码性质来完成转换。这里是一个简单的示例,假设我们有一个名为 `str` 的字符串:
```cpp
#include <string>
std::string swapCase(std::string str) {
for (size_t i = 0; i < str.length(); ++i) {
if (islower(str[i])) { // 如果字符是小写字母
str[i] = toupper(str[i]); // 将其转为大写
} else if (isupper(str[i])) { // 否则是大写字母
str[i] = tolower(str[i]); // 将其转为小写
}
}
return str;
}
```
上面的函数 `swapCase` 接受一个 `std::string` 类型的参数,遍历其中的每个字符,使用 `islower` 和 `isupper` 函数检查字符是否为小写或大写,然后使用 `toupper` 和 `tolower` 函数进行转换。
相关问题
用c++输入一串字符,输出大小写互换,标点符号变为空格的逆序
在 C++ 中,你可以通过以下几个步骤来实现这个功能:
1. **读取字符串**:使用 `std::cin` 来从用户那里获取一串字符,包括大小写字母、数字以及标点符号。
```cpp
#include <iostream>
#include <string>
using namespace std;
string inputString;
getline(cin, inputString);
```
2. **转换大小写**:对于每个字符,检查它是否是大写字母,如果是就转成小写,反之亦然。可以借助 `isupper()` 和 `tolower()` 函数,以及 `islower()` 和 `toupper()` 函数来完成。
```cpp
for (char& ch : inputString) {
if (isalpha(ch)) { // 检查是否为字母
if (isupper(ch))
ch = tolower(ch); // 小写
else
ch = toupper(ch); // 大写
} else { // 非字母字符(如标点符号)
ch = ' '; // 替换为空格
}
}
```
3. **逆序字符串**:将处理后的字符串进行反转,C++ 提供了多种方法,这里使用简单的双指针法。
```cpp
size_t start = 0, end = inputString.length() - 1;
while (start < end) {
swap(inputString[start], inputString[end]);
++start;
--end;
}
```
4. **输出结果**:最后输出逆序并替换为空格的大写小写混合字符串。
```cpp
cout << inputString << endl;
```
完整的代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string inputString;
getline(cin, inputString);
for (char& ch : inputString) {
if (isalpha(ch)) {
if (isupper(ch))
ch = tolower(ch);
else
ch = toupper(ch);
} else {
ch = ' ';
}
}
size_t start = 0, end = inputString.length() - 1;
while (start < end) {
swap(inputString[start], inputString[end]);
++start;
--end;
}
cout << inputString << endl;
return 0;
}
```
c++中,输入一段字符大小写互换后输出
在 C++ 中,你可以通过遍历输入字符串并利用 ASCII 码的特性来实现字符大小写的互换。ASCII 码中大写字母通常位于小写字母之后,比如 'A' 对应于 'a' 后面的第 1 的位置。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
void swap_case(std::string& str) {
for (char& ch : str) {
if ('A' <= ch && ch <= 'Z') { // 如果是大写字母
ch = ch + 32; // 转换成对应的小写字母
} else if ('a' <= ch && ch <= 'z') { // 如果是小写字母
ch = ch - 32; // 转换成对应的大写字母
}
}
}
int main() {
std::string input;
std::cout << "请输入一段字符串:";
getline(std::cin, input); // 使用getline获取包括空格的完整行
swap_case(input);
std::cout << "转换后的字符串是:" << input << std::endl;
return 0;
}
```
当你运行这个程序,并输入一段字符后,它会输出字符大小写互换后的结果。
阅读全文