Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
#1

Выдать строки, в которых есть слова с тремя буквами "у" - C++

11.12.2012, 23:26. Просмотров 983. Ответов 16
Метки нет (Все метки)

Задача: Выдать строки, в которых есть слова с тремя буквами "у".
Уважаемые форумчане и прогеры высокого левела, помогите!
Я сам не программист, но много задачек уже, в т.ч. и прикладных делал. Но вот беда-со строками не бум-бум. Помогите!
Код нужен на С++ (на VS 2005 пишу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 23:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выдать строки, в которых есть слова с тремя буквами "у" (C++):

Выдать строки, в которых есть слова с тремя буквами у - C++
Помогите! Выдать строки, в которых есть слова с тремя буквами у. не разобралась с текстовыми файлами.

Найти количество слов с тремя буквами "А" - C++
Дана строка состоящая из английских слов разделенных пробелами (одним или несколькими). Определить количество слов,которые содержат ровно ...

Вывести все слова, в которых есть буква "a" - C++
не могу найти ошибку int i=0,j=0,a=0,schet=0; char s,s1; cin.getline(s,50); while(i<50) { ...

Найти все слова, в которых есть двойные согласные, и заменить их символом "*" - C++
дан текст(на англ. яз). найти все слова, в которых есть двойные согласные и заменить их *.

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один"..."девять",...

Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" - C++
Помогите с программой, начал делать, ерунда какая то выходит.... #include<iostream.h> #include<stdlib.h> #include<conio.h> ...

16
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
11.12.2012, 23:26 #2
Считывание из файла идет?
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
11.12.2012, 23:28  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Считывание из файла идет?
Если не сложно, то да!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
11.12.2012, 23:34 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <fstream>
 
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    std::string str;
    while (!ifs.eof() && std::getline(ifs, str)) // пока не конец файла считываем строку
        if (str.find("yyy") != std::string::npos)
            std::cout << str << std::endl;
}
1
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
11.12.2012, 23:43  [ТС] #5
system("pause"); не хватает)))
добавлю еще интерфейс для проверки и пр.
Но главное само тело!!!
ОГРОМНОЕ СПАСИБО!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
12.12.2012, 00:26 #6
rammen33, system("pause") нужно только на Windows при использовании IDE, которая не удерживает консоль.
Проверка на существование файла есть
C++
1
if (!ifs) return 1;
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
12.12.2012, 00:42  [ТС] #7
Цитата Сообщение от MrGluck Посмотреть сообщение
rammen33, system("pause") нужно только на Windows при использовании IDE, которая не удерживает консоль.
Проверка на существование файла есть
C++
1
if (!ifs) return 1;
мне быстрее F5 нажать... поэтому пишу system("pause") чтоб застопорилось.
А заводил битый файл-меня тупо выкидывало. Поэтуму исправил немного
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <fstream>
 /* Выдать строки, в которых есть слова с тремя буквами у */
 int main()
{   
    using namespace std;
    setlocale(LC_ALL,"rus");
    cout<<"Cтроки, в которых есть слова с тремя буквами у: "<<endl<<endl;
    std::ifstream ifs("input.txt");
    if(ifs == 0)
        {
                cout<<"   Не могу открыть файл! Или его не существует...\n\n\n ";system("pause");
              
        }
    if (!ifs) return 1;
    std::string str;
    while (!ifs.eof() && std::getline(ifs, str)) // пока не конец файла считываем строку
        if (str.find("ууу") != std::string::npos)
            std::cout << str << std::endl;
    cout<<endl;
    system("pause");
 }
Добавлено через 6 минут
о! еще тогда вопрос: вот кусок кода -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void View(int *arr, int N );
void View(int *arr, int N )//  функция заполнения и вывода массива
        {      cout << " МАССИВ ----------------  "; cout<<endl;
            int i;
            srand((unsigned int) time(NULL));// генератор случ чисел 
            for (i=0; i<N; i++)
                {   *(arr+i)=rand()%100;
                    cout<<*(arr+i)<<" "; // вывод массива с обращением через указатели
                }
        }
void main()
{   
FILE *out;
out=fopen("OUTPUT.txt","w");
fprintf(out, View);
cout<<endl;
fclose(out);
Почему не получается саму функцию- ее результат, запихать в файл?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
12.12.2012, 00:50 #8
Во-первых, лишние проверки ни к чему:
C++
1
2
3
4
5
6
if(!ifs) // то же, что и if(ifs == 0)
{
    cout<<"   Не могу открыть файл! Или его не существует...\n\n\n ";
    system("pause");
    return 1;
}
Во-вторых, зачем мешать синтаксис С++ с поточным вводом/выводом на экран, тем более с STL наряду с С-ными указателями на файловую переменную? Используйте fstream.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    const int N = 20;
    int arr[N];
    View(arr, N);   
    std::ifstream out;
    out.open("OUTPUT.txt");
    if (!out)
    {
        std::cerr << "No file\n";
        system("pause");
        return 1;
    }
    for (int i=0; i < N; i++)
        out << arr[N] << " "; // хотите - переделайте на указатели
    out.close();
}
В-третьих, по стандарту int main()
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
12.12.2012, 01:05  [ТС] #9
Цитата Сообщение от MrGluck Посмотреть сообщение
Во-первых, лишние проверки ни к чему:
C++
1
2
3
4
5
6
if(!ifs) // то же, что и if(ifs == 0)
{
    cout<<"   Не могу открыть файл! Или его не существует...\n\n\n ";
    system("pause");
    return 1;
}
Во-вторых, зачем мешать синтаксис С++ с поточным вводом/выводом на экран, тем более с STL наряду с С-ными указателями на файловую переменную? Используйте fstream.
C++
1
2
3
4
int main()
        out << arr[N] << " "; // хотите - переделайте на указатели
    out.close();
}
В-третьих, по стандарту int main()
Нет, вы меня не поняли!
Я имел ввиду отдельно работающую функцию вывести в файл - все что в консоли вывела- то и в файл, некий отчет.
У нас вообще в группе на Борланде пишут, ничего... я не смог, сел за Visual...
А потоковый вывод я и реализовывал:
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
void View (int *arr, int N) // функция поиска мин макс & вывод в файл
        {       
            FILE *out;
            out=fopen("OUTPUT.txt","w");
                int min=*arr; 
                int max=*arr;
                int k=0,l=0;
                for (int i=1; i<N; i++)
                {
                    if (min>*(arr+i))
                    {min=*(arr+i);k=i;}
                    if (*(arr+i)>max)
                    {max=*(arr+i);l=i;}
                }
            cout<<endl;
            cout<<endl;
            cout<<"элементы, расположенные между мин. " <<min<<" ["<<k
                <<"] и макс. "<<max<<" ["<<l<<"]элементами массива: "<<endl;
            int i;
if (l>k)  
{fprintf(out,"элементы, расположенные между мин и макс: \n ");
    for (i=k+1; i<l; i++)
        {cout<<*(arr+i)<<" ";  
    fprintf(out,"%3.2d",arr[i]);}}
else  
fprintf(out,"элементы, расположенные между мин и макс: \n ");
        for (i=l+1; i<k; i++)
                {cout<<*(arr+i)<<" ";
                fprintf(out,"%3.2d",arr[i]);}
cout<<endl<<endl;
fclose(out);
А хотел сделать отдельно, вызвать это же самое, но функцией, которая прописывается в файл. Не получилось, ругался конвертер int в *char.

И не ругайте меня за потоковый ввод/вывод - работает же! Так быстрее
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
12.12.2012, 01:08 #10
rammen33, начнем с того, что потоки подразумевают операторы << и >>, а то что вы делаете пошло из С. И вы хоть пробовали компилировать мой код? Там как раз результат в файл и записывается.
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
12.12.2012, 01:15  [ТС] #11
Цитата Сообщение от MrGluck Посмотреть сообщение
rammen33, начнем с того, что потоки подразумевают операторы << и >>, а то что вы делаете пошло из С. И вы хоть пробовали компилировать мой код? Там как раз результат в файл и записывается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    const int N = 20;
    int arr[N];
    View(arr, N);   
    std::ifstream out;
    out.open("OUTPUT.txt");
    if (!out)
    {
        std::cerr << "No file\n";
        system("pause");
        return 1;
    }
    for (int i=0; i < N; i++)
        out << arr[N] << " "; // хотите - переделайте на указатели
    out.close();
}
к СОЖАЛЕНИЮ выдало много ошибок, некогда разбираться...
Но вот вметсто arr[N] можно ли ФУНКЦИЮ вставить?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
12.12.2012, 01:19 #12
C++
1
out << arr[i] << " ";
опечатка.
Вы хотите, чтоб отдельная функция выводила в файл результат?
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
12.12.2012, 01:24  [ТС] #13
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
out << arr[i] << " ";
опечатка.
Вы хотите, чтоб отдельная функция выводила в файл результат?
ВЫВОДИЛАСЬ, а функцию вывода я писал...
0
dederkay
38 / 38 / 0
Регистрация: 08.12.2010
Сообщений: 161
12.12.2012, 01:27 #14
Цитата Сообщение от rammen33 Посмотреть сообщение
ВЫВОДИЛАСЬ, а функцию вывода я писал...
я надеюсь вы имеете в виду что выведеться результат работы(вероятно возвращаемое значение) ф - и? или же вы желаете выводить в файл листинг(что очень странно) ф -и? ибо слова выводить ФУНКЦИЮ как то неоднозначно звучат)
0
rammen33
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 11
12.12.2012, 01:30  [ТС] #15
Цитата Сообщение от dederkay Посмотреть сообщение
я надеюсь вы имеете в виду что выведеться результат работы(вероятно возвращаемое значение) ф - и? или же вы желаете выводить в файл листинг(что очень странно) ф -и? ибо слова выводить ФУНКЦИЮ как то неоднозначно звучат)
Да да, вы правильно мыслите. Функцию вывода для вывода данных... Вообщем ладно, не будем заморачиваться и отвлекать вас по таким мелочам.
Спасибо еще раз!
А я наверно спать, мне на пару к 8:00, а времени у нас 3:30...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 01:30
Привет! Вот еще темы с ответами:

Найти все и вывести все слова в которых есть буква "к" - C++
дана строка (ввод с клавы) найти все и вывести все слова в которых есть буква &quot;к&quot;!!!!!!!!!!!!!!!!!!!!!!(разделители между словами точка или...

Заданный словарь слов. Найти в нем слова-палиндромы, то есть такие, которые одинаково читаются слева направо и наоборот, например, "АННА", "ШАЛАШ" - C++
Заданный словарь слов. Найти в нем слова-палиндромы, то есть такие, которые одинаково читаются слева направо и наоборот, например, &quot;АННА&quot;,...

Из слова "яблоко" путем склеек и вырезок его букв получить слова "блок" и "око" - C++
Самым самым самым простым способом.

Дана строка. На печать выдать слова, имеющие больше одной буквы "е" - C++
Составить программу на языке С++ для обработки строк с использованием файлов и указателей. Дана строка. На печать выдать слова, имеющие...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru