Форум программистов, компьютерный форум CyberForum.ru

Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. - C++

Восстановить пароль Регистрация
 
taeas1995
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
10.11.2012, 16:06     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #1
Помогите пожалуйста. Очень нужно сделать программу.
Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии.

Добавлено через 19 часов 12 минут
Никто не знает? просто очень нужно(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 16:06     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии.
Посмотрите здесь:

Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. C++
Ввести фамилию, имя и отчество как одно данное типа строка. Заменить на инициалы C++
Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв «а» в нем C++
C++ Определить количество слов, которые содержат ровно четыре буквы "о", "О"
C++ Определить длину каждого слова. Удалить все буквы "а" и "о" с фамилии
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.11.2012, 16:16     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #2
С++? STL?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
10.11.2012, 17:15     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #3
Можно вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <algorithm>
 
bool func(char ch) 
{   
    char buffer[] = "AaEeOoIiUi"; 
    int i;   
    int size = strlen(buffer);
    for ( i = 0; i < size; i++) 
        if(buffer[i] == ch)    
            return 1; 
        return 0;
} 
 
bool func2(char ch) 
{  
    if(ch == 'a' || ch == 'o') 
        return 1; 
    else 
        return 0;
}
 
int main() 
{  
    char str[100]; 
    std::cout << "Inter FIO " << std::endl; 
    std::cin.getline(str, 100); 
    int size = strlen(str); 
    std::cout << "Size is " << size << std::endl;
    int c = std::count_if(str, str + size, func); 
    std::cout << "Count is " << c << std::endl;  
 
    char* n = std::remove_if(str, str + size, func2); 
 
    for ( unsigned i = 0; i < size - strlen(n); i++) 
        std::cout << str[i]; 
    std::cout << std::endl;
}
taeas1995
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
12.11.2012, 00:36  [ТС]     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #4
У меня C++ старой версии(нужно просто так) и я исправил кое-что. И пару ошибок есть(там где count_if и remove_if - что нужен прототит и ошибка где * (невозможно из char в int преобразовать). Помогите пожалуста исправить. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream.h>
#include<conio.h>
#include<string.h>
 
int func(char ch)
{
    char buffer[] = "AaEeOoIiUuYy";
    int i;
    int size = strlen(buffer);
    for ( i = 0; i < size; i++)
    if(buffer[i] == ch)
        return 1;
    return 0;
}
 
int func2(char ch)
{
    if(ch == 'a' || ch == 'o')
    return 1;
    else
    return 0;
}
 
int main()
{
    char str[100];
    cout << "Inter FIO " <<endl;
    cin.getline(str, 100);
    int size = strlen(str);
    cout << "Size is " << size <<endl;
    int c=count_if(str,str+size,func);
    cout<<"Golosnyx="<<c<<endl;
    char* n=remove_if(str,str+size,func2)
    for ( unsigned i = 0; i < size - strlen(n); i++)
    cout << str[i];
    cout << endl;
    getch();
    return 0;
}
Добавлено через 35 минут
очень нужно на завтра( помогите плиз(

Добавлено через 1 час 14 минут
ну что? есть варианты?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.11.2012, 03:06     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #5
Точку с запятой в конце 33. Для count_if и remove_if нужно:
C++
1
[URL=http://www.cyberforum.ru/usertag.php?do=list&action=hash&hash=include]#include[/URL]  <algorithm>
Ещё:
C++
1
using namespace std;
Не знаю, как у вас, но у меня iostream.h не находит, нужно просто iostream.

Добавлено через 1 час 6 минут
Если обходиться без #include <algorithm>:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
 
const int N = 100;
 
int main()
{
    char str[N];
    cout << "Inter FIO " << endl;
    cin.getline(str, N);
    int size = strlen(str);
    cout << "Size is " << size <<endl;
    
    int c = 0;
    char buffer[] = "AaEeOoIiUuYy";
    for (int j = 0; j < size; j++)
        for (int i = 0; i < strlen(buffer); i++)
            if(buffer[i] == str[j])
            {
                 c++;
                 break;
            }
    cout << "Glasnyx = " << c << endl;
    
    char str2[N];
    int j = 0;
    for (int i = 0; i < size; i++, j++)
    {
        if (str[i] != 'a' && str[i] != 'o')
                str2[j] = str[i];
        else j--;
    }
    str2[j] = '\0';
    
    for (int i = 0; i < strlen(str2); i++)
        cout << str2[i];
    
    cout << endl;
    cin.get();
    return 0;
}
Но это код, так же как и код из 3 поста, не совсем по заданию. Удаляются 'a' и 'o' из всей строки, а не только из фамилии.

Добавлено через 10 минут
Если сделать, чтобы удалялись только из фамилии (фамилия идёт первой), то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
using namespace std;
 
const int N = 100;
 
int main()
{
    char str[N];
    cout << "Inter FIO " << endl;
    cin.getline(str, N);
    int size = strlen(str);
    cout << "Size is " << size <<endl;
    
    int c = 0;
    char buffer[] = "AaEeOoIiUuYy";
    for (int j = 0; j < size; j++)
        for (int i = 0; i < strlen(buffer); i++)
            if(buffer[i] == str[j])
            {
                 c++;
                 break;
            }
    cout << "Glasnyx = " << c << endl;
    
    char str2[N];
    int j = 0;
    int flag = 0;
    for (int i = 0; i < size; i++, j++)
    {
        if (str[i] != ' ' &&  flag == 0)
        {
            if (str[i] != 'a' && str[i] != 'o')
                 str2[j] = str[i];
            else j--;
        }
        else 
        {
            flag = 1;
            str2[j] = str[i];
        }
    }
    str2[j] = '\0';
    
    for (int i = 0; i < strlen(str2); i++)
        cout << str2[i];
    
    cout << endl;
    cin.get();
    return 0;
}
taeas1995
6 / 2 / 0
Регистрация: 19.01.2012
Сообщений: 157
12.11.2012, 09:39  [ТС]     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. #6
Спасибо большое!)
Yandex
Объявления
12.11.2012, 09:39     Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии.
Ответ Создать тему
Опции темы

Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru