从键盘输入一串字符并删除该字符串中所有大写字母字符c++编程
时间: 2024-03-01 14:49:55 浏览: 88
可以使用C++中的字符串处理函数erase和isupper来实现该功能。具体代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str); // 从键盘输入一串字符
// 遍历字符串中的每个字符,如果是大写字母就删除
for (int i = 0; i < str.length(); i++) {
if (isupper(str[i])) {
str.erase(i, 1);
i--; // 删除后需要将i回退一位
}
}
cout << "删除大写字母后的字符串为:" << str << endl;
return 0;
}
```
其中,isupper函数判断一个字符是否为大写字母,如果是返回非零值,否则返回0。erase函数可以删除字符串中指定位置的字符。需要注意的是,每次删除后需要将索引i回退一位,避免跳过下一个字符。
相关问题
c++从键盘输入一个字符串,将小写字母全部转换成大写字母
可以使用c++中的标准库函数toupper()将小写字母转换成大写字母。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
#include <locale>
int main() {
std::string str;
std::getline(std::cin, str); // 从键盘输入字符串
std::locale loc;
for (std::string::size_type i = 0; i < str.length(); i++) {
str[i] = std::toupper(str[i], loc); // 将小写字母转换成大写字母
}
std::cout << str << std::endl; // 输出转换后的字符串
return 0;
}
```
在上面的代码中,我们首先使用std::getline()函数从键盘输入一个字符串,然后使用std::locale()构造一个本地化对象,用于处理不同语言环境下的字符转换。接着使用for循环遍历字符串中的每个字符,调用std::toupper()函数将小写字母转换成大写字母,最后输出转换后的字符串。
从键盘上输入一串字符,分别统计其中的大写字母、小写字母、数字的个数,然后将非大写字母、小写字母、数字的字符全部用‘#’代替,最后输出更改后的字符串。c++
可以使用循环遍历字符串中的每个字符,然后判断它是大写字母、小写字母、数字还是其他字符,根据不同情况进行处理。
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int upper_count = 0, lower_count = 0, digit_count = 0;
cout << "请输入一串字符:";
getline(cin, str);
for (char c : str) {
if (c >= 'A' && c <= 'Z') {
upper_count++;
} else if (c >= 'a' && c <= 'z') {
lower_count++;
} else if (c >= '0' && c <= '9') {
digit_count++;
} else {
c = '#'; // 非字母数字的字符用 # 替换
}
cout << c;
}
cout << "\n大写字母个数:" << upper_count << endl;
cout << "小写字母个数:" << lower_count << endl;
cout << "数字个数:" << digit_count << endl;
return 0;
}
```
上述代码中使用了 getline 函数来获取用户输入的一串字符,然后使用 for 循环遍历每个字符,统计大写字母、小写字母、数字的个数,并将非字母数字的字符用 # 替换。最后输出更改后的字符串和各类字符的个数。
阅读全文