我想问一下如何在c ++中创建一个具有大写和小写字母的字符串?例如,当用户将“森林”一词放入时,我希望“森林”一词后面像是FOREST或FOreST和FORest。
答案 0 :(得分:0)
可以通过以下方式随机地对字符串的字符进行大写和小写:
#include <random>
#include <cctype>
#include <algorithm>
std::string random_uppercase_lowercase(std::string s) {
std::random_device rd;
std::default_random_engine generator(rd());
std::uniform_int_distribution<> distribution(0,1);
std::transform(s.begin(), s.end(), s.begin(),
[&](int ch) {
if (distribution(generator)) {
return std::toupper(ch);
} else {
return std::tolower(ch);
}
});
return s;
}
答案 1 :(得分:0)
尝试将std::string
转换为char
并查看每个字母。如果是大写字母,则将其转换为小写字母,反之亦然。
简单的代码说明在这里:
#include <iostream>
int main(void) {
std::string string;
std::cout << "Enter a string: ";
std::getline(std::cin, string);
size_t len = string.length();
char *pString = new char[len + 1]; // + 1 for null terminator
strcpy(pString, string.c_str()); // copies 'string' into 'pString'
for (int i = 0; i < len; i++) {
if (isupper(pString[i]))
pString[i] = tolower(pString[i]); // tolower() when isupper()
else
pString[i] = toupper(pString[i]); // toupper() when islower()
}
std::cout << pString << std::endl; // prints the converted string
return 0;
}
示例输出如下:
Enter a string: HeLLO wOrlD
hEllo WoRLd