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

Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук - C++

Восстановить пароль Регистрация
 
luibrain
1 / 1 / 1
Регистрация: 15.11.2015
Сообщений: 32
14.12.2015, 14:35     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #1
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
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n, i;
    char *str;
    cin >> n;
    str = new char[n];
    for (i = 0; i < n;i++);
    cin >> str[i];
    cout << str[i] << endl;
    while (str[i])
    {
        int cnt = 0;
        while (str[i] != '\0') {
            if (strcmp(str[i], 'а') == 0)
                cnt++;
            if (cnt == 2)
                cout << str << endl;
        }
    }
 
        delete[] str;
    system("pause");
    return 0;
}
выдает ошибку, пишет что нельзя преобразовать const char в char
Помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2015, 14:35     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук
Посмотрите здесь:

C++ Вывести группы букв строки, в которых буква А встречается не менее двух раз
C++ Вводим текстовую строку. Вывести на экран те слова, в которых предпоследняя буква – согласная.
C++ Указатели (Распечатать все слова, в которых встречается заданная пользователем буква)
C++ Строковые переменные: Найти все слова, в которых буква ''а'' входит не менее двух раз
Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NUBAS
8 / 8 / 3
Регистрация: 28.10.2014
Сообщений: 151
14.12.2015, 15:25     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #2
Странно вы строку вводите.. И можно полный текст ошибки?
luibrain
1 / 1 / 1
Регистрация: 15.11.2015
Сообщений: 32
14.12.2015, 15:33  [ТС]     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #3
аргумент типа "char" несовместим с параметром типа "const char"
NUBAS
8 / 8 / 3
Регистрация: 28.10.2014
Сообщений: 151
14.12.2015, 15:36     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #4
Это понятно, просто я с телефона, и не могу код запустить. В какой строке ошибка?
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
14.12.2015, 15:40     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #5
малость по проще
Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <algorithm>
#include <string>
#include <locale.h>
 
int main(int argc, char *argv[])
{
    std::string sss;
    std::string str1("wgtgvsreaa"),
                str2("2345435aaa"),
                str3("2456t5462t556aaaaaaa"),
                str4("wtrgrwtgrtgrt");
 
        setlocale(LC_ALL, "");
        std::cout << "->";
    std::getline(std::cin, sss);
 
    std::cout << sss  << "  " << std::count(sss.begin(), sss.end(), 'a')   << std::endl;
    std::cout << str1 << "  " << std::count(str1.begin(), str1.end(), 'a') << std::endl;
    std::cout << str2 << "  " << std::count(str2.begin(), str2.end(), 'a') << std::endl;
    std::cout << str3 << "  " << std::count(str3.begin(), str3.end(), 'a') << std::endl;
    std::cout << str4 << "  " << std::count(str4.begin(), str4.end(), 'a') << std::endl;
        return 0;
}
luibrain
1 / 1 / 1
Регистрация: 15.11.2015
Сообщений: 32
14.12.2015, 15:44  [ТС]     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #6
надо ввести строку, чтобы в ней было много слов
например:
папа мама сын брат сестра дочь( разделены пробелом)
надо вывести эту же строку с пробелами
и потом нужно вывести на экран слова с 2 буквами А
то есть
папа
мама
NUBAS
8 / 8 / 3
Регистрация: 28.10.2014
Сообщений: 151
14.12.2015, 15:47     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #7
Судя по всему, ему нужно сделать без использования классов

Добавлено через 2 минуты
Вы крайне неверно цикл написали, да и вот ссылка на описание функции

http://www.c-cpp.ru/content/strcmp
Lensato
49 / 49 / 24
Регистрация: 07.10.2015
Сообщений: 170
14.12.2015, 15:53     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #8
Вот так будет работать:
C++
1
if (strcmp(str, "а") == 0)
strcmp(a,b) - a и b это указатели на строки (т.к. функция сравнивает две строки)
У вас же там одиночные символы.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
14.12.2015, 15:56     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #9
Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <vector>
#include <locale.h>
 
 
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
    return elems;
}
 
 
std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, elems);
    return elems;
}
 
int main(int argc, char *argv[])
{
    std::string sss;
 
    setlocale(LC_ALL, "");
 
    std::cout << "->";
 
    std::getline(std::cin, sss);
    
    auto vc = split(sss, ' ');
 
    std::cout << std::endl;
 
    for (auto str : vc)
        if (std::count(str.begin(), str.end(), 'a') == 2)
            std::cout << str << std::endl;
        return 0;
}
luibrain
1 / 1 / 1
Регистрация: 15.11.2015
Сообщений: 32
14.12.2015, 16:26  [ТС]     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #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
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n, i;
    char *str;
    cout << "Введите размер строки ";
    cin >> n;
    str = new char[n];
    cout << "Введите строку ";
    for (i = 0; i < n; i++)
    cin >> str[i];
    for (i = 0; i < n; i++)
    cout << str[i];
    cout << endl;
    while (str[i])
    {
        int cnt = 0;
        while (str[i] != '\0') {
            if (strcmp(str, "а") == 0) cnt++;
            if (cnt == 2)
                cout << str << endl;
        }
    }
 
    delete[] str;
    system("pause");
    return 0;
что-то не хочет работать
выводит строку без пробелов, т.е. тупо слова, а слова с 2 А даже не хочет выводить

Добавлено через 3 минуты
ssXXss, я такое вряд ли преподу объясню...
NUBAS
8 / 8 / 3
Регистрация: 28.10.2014
Сообщений: 151
14.12.2015, 16:28     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #11
А на что вы рассчитывали вводя строку через " cin"??? Да и выводите вы не слово, а весь массив str
luibrain
1 / 1 / 1
Регистрация: 15.11.2015
Сообщений: 32
14.12.2015, 16:45  [ТС]     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #12
а как тогда? я не понимаю вообще
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2015, 00:14     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук
Еще ссылки по теме:

Вывести слова из предложения, в которых есть буква, встречающийся четыре и более раз C++
C++ Вывести слова, в которых повторно встречается первая буква
C++ Вывести в столбик слова, в которых две буквы а

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NUBAS
8 / 8 / 3
Регистрация: 28.10.2014
Сообщений: 151
15.12.2015, 00:14     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук #13
Если не получится, приеду вечером домой, сделаю. А так, используй getline

Добавлено через 7 часов 26 минут
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <Windows.h>
 
using namespace std;
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
 
    const int n = 700;
    char *sl,s[n];
    cin.getline(s, n);
    cout  << endl << endl;
    
       sl = strtok( s, " ,.:;!?");
     
    
       while (sl)
       {
          int Kol_a = 0;
           for (int i = 0; i < strlen(sl); i++)
               if (sl[i] == 'a')Kol_a++;
           if (Kol_a == 2)cout << sl << endl;
           sl = strtok(NULL, " ,.:;!?");
       }
            
        
        
    _getch();
    return 0;
}
Yandex
Объявления
15.12.2015, 00:14     Вывести в столбик слова, в которых заданная буква имеется в количестве двух штук
Ответ Создать тему
Опции темы

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