Я уже пробовал с другими сообщениями на этом сайте, но это не сработало. Я надеюсь, ты сможешь мне помочь. Проблема состоит в том, чтобы стереть все гласные в заданной строке, затем преобразовать ее в нижний регистр и, наконец, вставить символ '.'
перед каждым согласным. Это последнее, что вызывает у меня проблемы.Вставка символа в строку
#include <iostream>
#include <cstdio>
#include <ctype.h>
#include <string>
using namespace std;
string cad1;
char vowels[] = {
'A', 'O', 'Y', 'E', 'U', 'I', 'a', 'o', 'y', 'e', 'u', 'i'
};
int size = sizeof(vowels)/sizeof(vowels[0]);
string ToLowerCase(string text)
{
for (int i = 0; i < text.length(); i++)
{
char c = text[i];
if ((c >= 65) && (c <= 90))
{
text[i] |= 0x20;
}
}
return text;
}
int main()
{
cin >> cad1;
for (int i = 0; cad1[i] != '\0'; i++)
{
for (int j = 0; j < size; j++)
{
if (cad1[i] == vowels[j])
{
cad1.erase(cad1.begin() + i);
}
}
for (int j = 0; cad1[j] != '\0'; j++)
{
cad1[j] = tolower(cad1[j]);
}
cad1 += ".";
/* for (int k = 0; cad1[k] != '\0'; k++) {
if (k % 2 == 0) {
cad1.insert(k, 1, '.');
}
} */
}
cout << cad1 << endl;
cin.get();
}
Почему вы не используете 'зЬй :: string'? Я вижу, вы включили его. – 735Tesla
Что касается вашей согласной проблемы - если символ не является гласным, это согласный, правильно? Это поможет вам найти их. – Nabren
Извините за мой первый ответ, я неправильно разобрал ваш вопрос. Я немного поменю, а потом снова отправлю. – 735Tesla