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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
#1

Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! - C++

15.11.2009, 00:42. Просмотров 2650. Ответов 44
Метки нет (Все метки)

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
void main(void)
{
clrscr();
char our_string[100];
char my_string[] = "exit";
int strings_count = 0;// shetchik strok
int words_count = 0;// shetchik slov
char *words;
char iskomoe_slovo[1000];
 
int iskomaya_stroka[100];
 
 
int i;
int ok;
 
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
int j=0;  
while(strcmp(our_string,my_string)!=0){// esli nasha stroka = exit, to vihodim
words = strtok(our_string," . ; ? ! , ");
strings_count++;// uvelichivaem colvo strok na 1
    while(words != NULL){
        words_count++;// colvo slov uvelichivaem na 1
 
                ok=1;
                for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
                
                    if((iskomoe_slovo[i] == words[i])&&(ok==1)){
                 
                        ok = 1;
                    }
                    else{
                        ok = 0;
                    }
                }
             if(ok==1)
{
 
 
 
    iskomaya_stroka[j]=strings_count;
                        
            j++;  
}
 
    words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
    }
gets(our_string);// eshe raz prosim vvesti stroku
}
 
 
cout << endl << "strings count = " << strings_count;
cout << endl << "words count = " << words_count;
cout << endl << "iskomie stroki pod nomerami: " << endl;
        for(i=0;i<j;i++)        // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2009, 00:42     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
Посмотрите здесь:
C++ С++.Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
C++ Подскажите, что мне надо поменять в моем коде, чтобы найти сумму по столбцам?
C++ Считать текст из файла и вывести на экран сначала вопросительные, а потом восклицательные предложения
C++ Распределить элементы массива так, чтобы сначала стояли положительные, а потом отрицательные
C++ Переписать файл так, чтобы сначала шли положительные, потом отрицательные числа
C++ Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные
C++ Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
16.11.2009, 20:57     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #31
да ++cnt - таже самая инкрементация, только значение cnt увеличивается сразу, в отличии от cnt++ , но лучше почитай это в учебнике, там всё подробно описанно. учебники в факе
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
16.11.2009, 22:13  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #32
TanT, Но как насчет счетчиков строк,как можно оптимизировать?может ее как счетчик строк содержащее искомое слово?а, наверно нет, потому что это j-счетчик строк содержащее искомое слово?..

Добавлено через 32 минуты
Цитата Сообщение от ромыч Посмотреть сообщение
TanT, Но как насчет счетчиков строк,как можно оптимизировать?может ее как счетчик строк содержащее искомое слово?а, наверно нет, потому что это j-счетчик строк содержащее искомое слово?..
Но как насчет счетчиков строк?

Добавлено через 32 минуты
TanT, Ответь мне пож. на вопрос,что делать с счетчиками строк,как их назвать или как оптимизировать?откомментируй...

P.s. И что думаешь насчет программы?какая она теперь,и надо ли ее оптимизировать?
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
17.11.2009, 20:23  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #33
TanT, Ответь мне пож. на вопрос,что делать с счетчиками строк,как их назвать или как оптимизировать?откомментируй...

P.s. И что думаешь насчет программы?какая она теперь,и надо ли ее оптимизировать?

не ужели нет никаких мнений и идей?..
а сможешь помочь с блок-схемой?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
17.11.2009, 20:30     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #34
да идей море, ты сам отказывался от варианта Андрейки. оптимизация, а точнее коренная переделка, необходима. но боюсь текущих познаний не хватит, хотя наверстать прижелании ты сможешь. вопрос тока: Зачем тебе нужна эта оптимизация? не принимают прогу?

Добавлено через 59 секунд
блок схемой неее, я их даже за деньги не очень то делаю, не люблю стрелочки эти рисовать.
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
17.11.2009, 20:55  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #35
TanT, вот именно,я просто хочу узнать твое мнение,примут прогу,нужна ли оптимизация?...не ужели прога такая плохая получилась? ты же все таки опытный,подскажи...
я и сам не хочу ее переделывать,меня все устраивает в ней...просто с счетчиками строк непонятки,как их назвать,чтобы различать...может их как один в цикле,другой в массиве)..объяснять же их надо будет,я из-за этого говорю...
Если что,вдруг,блок-схема есть,ее просто проверить...
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
18.11.2009, 12:45     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #36
для начала получилась нормальная прога, просто здесь присутвуют элементы С от которых можно избавиться, сам код всётаки на С++ . ты всё равно, надеюсь, только пока не знаешь STL, можешь посмотреть что такое в С++ string и в частности его фунции find, примерно то тебе писал Андрейка.
и про контенеры почитать скажем про vector

Добавлено через 3 минуты
что касается счётчиков строк можешь свой strings_count уничтожить и вместо него выводить cnt-1
-1 - так как последняя строка "exit" не в счёт.
меня только удивляет чего ты сам это не сделаешь, зачем переспрашиваешь?
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
18.11.2009, 14:13  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #37
TanT, я это сделаю,просто не понимал какие комментарии писать к ним...
А можешь сказать,какие элементы С присутствуют и что такое STL?

Добавлено через 20 минут
Цитата Сообщение от ромыч Посмотреть сообщение
TanT, я это сделаю,просто не понимал какие комментарии писать к ним...
А можешь сказать,какие элементы С присутствуют и что такое STL?
вот еще,меняешь на cnt-1 общее число строк и слов считает, а искомое слово выводит че то не то,посмотри пож. в чем дело?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
18.11.2009, 18:30     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #38
да откуда я знаю в чём дело? ты же у себя в коде исправлял. мож ты не то изменил.
по STL я тебе отвечал что нужно посмотреть, хоть попробуй по гуглить.
много лишних вопросов, на которые ты сам прекрасно можешь ответить приложив толику старания.
бери все не знакомые тебе операторы, забивай в поиск или смотри в учебнике, иначе, даже если я тебе всё распишу до словно, в голове у тебя ничего не останеться.
очень хорошо и навеки запоминается, то с чем, я извиняюсь, мозг потрахаешь пару часиков, а то и денёк.
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
18.11.2009, 20:22  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #39
TanT, О'к,извини если что,я же только начинающий,сам понимаешь...но помоги с кодом пож.,мне только ее осталось исправить...напиши пож...
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
18.11.2009, 21:01     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #40
чего тебе написать? код рабочий, что ещё надо? задача плёвая, толчом тут воду в ступе.
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
18.11.2009, 21:27  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #41
TanT, я знаю,что код рабочий... ты же сказал один можно счетчик строк оставить,чтобы упростить прогу... я же тебе писал уже,что объяснять надо будет прогу.а как различать тогда эти счетчики(strings_count и cnt)?как их называть.так оставить что ли?..вот поэтому мне и надо,чтобы ты мне код исправил,как ты сам предлогал мне ранее заменить с cnt-1...
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.11.2009, 06:35     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #42
всё, последняя ревизия убрал я тебе счётчик. хватит мусолить эту задачу.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
using namespace std;
void main(void)
{
    //clrscr();
    char our_string[100][100];
    char my_string[] = "exit";
    int strings_count = 0;// shetchik strok
    int words_count = 0;// shetchik slov
    char *words;
    char iskomoe_slovo[100];
 
    int iskomaya_stroka[100];
 
    int i;
 
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do                                                                                                      // цикл... 
    {
        gets(our_string[strings_count]);  // ...считывает строки в массив our_string, инкрементируя cnt...
        ++strings_count;
    } while (strcmp(our_string[strings_count-1],my_string)!=0);               //...пока не встетит слово my_string
    
    --strings_count;
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
    for (int c=0; c<strings_count; c++)                     // перебор всех строк из массива our_string
    { // это всё твоё
        words = strtok(our_string[c]," . ; ? ! , ");
        while(words != NULL)
        {
            words_count++;// colvo slov uvelichivaem na 1
            if(!strcmp(iskomoe_slovo,words))                // если искомое стролово совпало с рассматриваемым
            {
                iskomaya_stroka[j++]=c+1;             // увеличиваем счётчик
            }
            words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
        }
 
    } // перебор по всему массиву
 
    cout << endl << "strings count = " << strings_count;
    cout << endl << "words count = " << words_count;
    if (!j)                         // если счётчик слов равен нулю
    {
        cout<<"\niskomie slovo ne naideno \n";
    }
    else
    {
        cout << endl << "\niskomie stroki pod nomerami: " << endl;
        for(i=0;i<j;i++)                // вывод на экран номеров
            cout<<iskomaya_stroka[i]<<" ";
    }
 
    getch();
}
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
19.11.2009, 14:09  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #43
TanT, Благодарю...
strings_count-1-это уменьшаем на 1,потому что exit не входит,а --strings_count ?
и c+1 увеличиваем на 1,чтобы все строки совпавшие выводить?
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
20.11.2009, 15:36  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #44
Цитата Сообщение от ромыч Посмотреть сообщение
TanT, Благодарю...
strings_count-1-это уменьшаем на 1,потому что exit не входит,а --strings_count ?
и c+1 увеличиваем на 1,чтобы все строки совпавшие выводить?
в цикле for (int c=0; c<strings_count; c++),strings_count без -1,потому что уменьшили на 1 уже в --strings_count?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2009, 20:37     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
Еще ссылки по теме:
Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные C++
C++ Переписать файл целых чисел так, чтобы сначала шли положительные, а потом - отрицательные
C++ Преобразовать массив, чтобы сначала располагались элементы, модуль которых не превышает 5, а потом остальные
Преобразовать последовательность чисел так, чтобы сначала были нули, а потом все остальные. C++
Преобразовать массив так, чтобы сначала шли все элементы с вещественной частью, а потом без неё C++

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

Или воспользуйтесь поиском по форуму:
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
21.11.2009, 20:37  [ТС]     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! #45
TanT, strings_count-1-это уменьшаем на 1,потому что exit не входит,а зачем используем --strings_count ?
и c+1 увеличиваем на 1,чтобы все строки совпавшие выводить?
в цикле for (int c=0; c<strings_count; c++),strings_count без -1?
Yandex
Объявления
21.11.2009, 20:37     Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
Ответ Создать тему
Опции темы

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