Не получается решить задачу.С++

76
21 сентября 2021, 16:10
#include <bits/stdc++.h>
using namespace std;
int main()
{
    string str,abl;
    cin >> str;
    for(int i=0;i<str.length();i++)
    {
        str[i]=tolower(str[i]);
        if(str[i]!='a'||str[i]!='o'||str[i]!='y'||str[i]!='e'||str[i]!='u'||str[i]!='i')
        {
            cout << "." << str[i];
        }
    }
}

Задача в том,чтобы убрать гласные буквы,то есть a,o,y,e,u,i и например если ввести IITU,то output должен быть .t,если test то .t.s.t,и ввести их с точками

Answer 1

Не или, а как раз таки И, потому что у вас проверка на НЕравенство буква не равна всем гласным

м или можно было сделать так

if(str[i] == 'a' || str[i] == 'o'||str[i] == 'y' || str[i] == 'e' || str[i] == 'u' || str[i] == 'i')
{
   // если любая из гласных - ничего не делаем
}
else
{
    std::cout << "." << str[i];
}
Answer 2
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
// #include <bits/stdc++.h> // Этот заголовок вам нужен?
using vector_chars = ::std::vector<char>;
const vector_chars map_chars =
{
    'A', 'a',
    'E', 'e',
    'I', 'i',
    'O', 'o',
    'U', 'u'
};
int main()
{
    ::std::string str, abl;
    ::std::cin >> str;
    for (::size_t i = 0; i < str.length(); i++)
    {
        vector_chars::const_iterator it =
                ::std::find(map_chars.begin(), map_chars.end(), str[i]);
        ::std::cout << (it == map_chars.end() ? (::std::string{'.', str[i]}) : "");
    }
    std::cout << std::endl;
}

Input:

test

Output:

.t.s.t
READ ALSO
Почему внутри функции не видны аргументы?

Почему внутри функции не видны аргументы?

Имеется такой код, почему пишет, что

150
Что означает выражение type &amp; l_t?

Что означает выражение type & l_t?

Что выполняется в функции set? Аргументу из функции присваивается тип type или что?

96
Ошибка линковки через pragma [закрыт]

Ошибка линковки через pragma [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

116
Скажите правильно ли я думаю-Матрица c++

Скажите правильно ли я думаю-Матрица c++

Изначально имел код который выводил матрицу

91