如何限制只输入大写字母
时间: 2024-03-25 09:36:58 浏览: 12
可以使用 C++ 中的 `isupper()` 函数来判断字符是否为大写字母。如果输入的字符串中有小写字母,可以将其转换为大写字母后再进行处理。
以下是一个限制只输入大写字母的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str); // 读取输入的字符串
// 判断是否有小写字母,并转换为大写字母
bool has_lower = false;
for (int i = 0; i < str.size(); i++) {
if (islower(str[i])) {
str[i] = toupper(str[i]);
has_lower = true;
}
}
if (has_lower) {
cout << "请重新输入,只能输入大写字母!" << endl;
return 0;
}
// 处理字符串,将连续的字符替换成“连续出现的个数+字符”
char curr_char = str[0];
int count = 1;
string result = "";
for (int i = 1; i < str.size(); i++) {
if (str[i] == curr_char) {
count++;
} else {
result += to_string(count) + curr_char;
curr_char = str[i];
count = 1;
}
}
// 处理最后一个字符
result += to_string(count) + curr_char;
cout << result << endl; // 输出编码后的字符串
return 0;
}
```
在这个代码中,我们使用了一个布尔变量 `has_lower` 来记录输入的字符串中是否有小写字母。首先遍历字符串中的每个字符,如果有小写字母,就将其转换为大写字母,并将 `has_lower` 置为 `true`。然后判断 `has_lower` 是否为 `true`,如果是,就输出错误信息并退出程序;否则,继续处理字符串。