Заменить в строке все заглавные буквы в строчные и наоборот c++
нужно простой способ. с помощью for if 'a'-'A' без лишних кодов
нужно простой способ. с помощью for if 'a'-'A' без лишних кодов
#include
#include
using namespace std;
int main() {
cout << "string? ";
string s;
getline(cin, s);
for (auto &c : s) c += c >= 'a' && c <= 'z' ? 'A' - 'a' : c >= 'A' && c <= 'Z' ? 'a' - 'A' : 0;
cout << "resutl: " << s << endl;
}
либо по таблице символов смотри код маленькой и прибавляй число до кода к большой букве. Либо встроенные функции - lowercase uppercase или как то так
1.Генерируешь таблицу замены, где по индексу, равного коду символа, хранится значение, на которое его следует заменить.
2.Для каждой буквы строки заменяешь ее на символ из таблицы.
3...
4.Profit!
if (ch >= 'a' && ch <= 'z')
ch +='A' - 'a';
else
ch -='A' - 'a';
Ну, если "с помощью for if 'a'-'A' ", то:
#include
...
for (int a=0; a
if (my_string[a] == 'a') my_string[a] = 'A';
if (my_string[a] == 'b') my_string[a] = 'B';
// и тд. . .
}
Если хочется арифметически, то можно еще так:
c = tolower(c) - c + toupper(c);
Оно в
Но лично я бы еще использовал дополнительно islower/isupper в if-ах, т. к. цель не повыпендриваться, а с минимальным использованием C++ написать максимально понятную программу. Можно даже сишный