Другие языки программирования и технологии
Заменить в строке все заглавные буквы в строчные и наоборот c++
нужно простой способ. с помощью for if 'a'-'A' без лишних кодов
#include <string>
#include <iostream>
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;
}
#include <iostream>
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;
}
1.Генерируешь таблицу замены, где по индексу, равного коду символа, хранится значение, на которое его следует заменить.
2.Для каждой буквы строки заменяешь ее на символ из таблицы.
3...
4.Profit!
2.Для каждой буквы строки заменяешь ее на символ из таблицы.
3...
4.Profit!
Если хочется арифметически, то можно еще так:
c = tolower(c) - c + toupper(c);
Оно в <cctype>
Но лично я бы еще использовал дополнительно islower/isupper в if-ах, т. к. цель не повыпендриваться, а с минимальным использованием C++ написать максимально понятную программу. Можно даже сишный <ctype.h> подключить для этого, чтоб поменьше плюсов было.
c = tolower(c) - c + toupper(c);
Оно в <cctype>
Но лично я бы еще использовал дополнительно islower/isupper в if-ах, т. к. цель не повыпендриваться, а с минимальным использованием C++ написать максимально понятную программу. Можно даже сишный <ctype.h> подключить для этого, чтоб поменьше плюсов было.
Ну, если "с помощью for if 'a'-'A' ", то:
#include <string.h>
...
for (int a=0; a<strlen(my_string); a++)
{
if (my_string[a] == 'a') my_string[a] = 'A';
if (my_string[a] == 'b') my_string[a] = 'B';
// и тд. . .
}
#include <string.h>
...
for (int a=0; a<strlen(my_string); a++)
{
if (my_string[a] == 'a') my_string[a] = 'A';
if (my_string[a] == 'b') my_string[a] = 'B';
// и тд. . .
}
if (ch >= 'a' && ch <= 'z')
ch +='A' - 'a';
else
ch -='A' - 'a';
ch +='A' - 'a';
else
ch -='A' - 'a';
Эдуард Бельченко
Так с пробелами случится неприятность
либо по таблице символов смотри код маленькой и прибавляй число до кода к большой букве. Либо встроенные функции - lowercase uppercase или как то так
Наиль Валиуллин
if ('a'=='A'+'32') или а ('a'=='A'+'32' 'z'=='Z'+'32')da?а что написать в блоке if ?
Похожие вопросы
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке
- Изменение маленьких букв на большие и наоборот - Assembler
- Дана матрица символов. Подсчитать количество строк, в которых букв больше, чем цифр.
- Хочу заняться программированием. Хочу для себя понять, как связана строка программирование (с буквами, символами) с ..(+)
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- задача на ассемблере: ввести предложение и заменить в нем символ "а" на символ "о" и наоборот Напишите код пожалуйста
- Напишите программу для С++, которая заменяет в символьной строке все буквы a на буквы b, буквы A на буквы B ...
- найти первую букву второго слова в строке. c++
- Генератор случайных слов (строк) из файла на C++.