Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
1

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

15.11.2009, 00:42. Просмотров 2781. Ответов 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2009, 00:42
Ответы с готовыми решениями:

С++.Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
И exit должен выходить после ввода текста. #include&lt;iostream.h&gt;...

Подскажите, что мне надо поменять в моем коде, чтобы найти сумму по столбцам?
Вот моя программа, я тут нахожу сумму всех чисел, а мне надо найти сумму по...

Считать текст из файла и вывести на экран сначала вопросительные, а потом восклицательные предложения
доброго времени суток) оч нужна помощь в составление программы!я с++ плохо...

Переписать файл так, чтобы сначала шли положительные, потом отрицательные числа
Подскажите, пожалуйста, нужно ли что-то поменять или добавить в программу? ...

Распределить элементы массива так, чтобы сначала стояли положительные, а потом отрицательные
Даны целые числа n одномерного массива. Полная программа на c++.

44
patriot2008
72 / 72 / 10
Регистрация: 04.12.2008
Сообщений: 460
15.11.2009, 00:46 2
C++
1
2
3
4
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
Так?
0
Андрейка
422 / 226 / 87
Регистрация: 25.03.2009
Сообщений: 744
15.11.2009, 00:50 3
ромыч, код прям смесь С++ и Сишного алгоритма)
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 01:44  [ТС] 4
А exit то после текста должен выходить,а не искомого слова,как это исправить?

Добавлено через 11 минут
patriot2008, а что с exit-ом делать?

Добавлено через 25 минут
patriot2008, и как увеличить размер текста,чтобы не только одна строка вводилась???ответь пож...
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 13:06  [ТС] 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
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
69
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!И exit после текста должен выходить,а не искомого слова,как это исправить?
#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();
}
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!И exit после текста должен выходить,а не искомого слова,как это исправить?

Добавлено через 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
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();
}
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 13:27 6
может проще переделать по людски? но если следовать вашей логике то как-то так
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
69
70
71
72
73
74
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    clrscr();
    char our_string[100], buf[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 text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string);
        strcat(buf,our_string);
    } while (strcmp(our_string,my_string)!=0);
 
    strcpy(our_string,buf);
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
    
    int j=0;  
 
        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
        }
 
 
 
    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();
}
1
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 13:44  [ТС] 7
TanT, Ну а как переделать по людски?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 13:51 8
тут пост номер три
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:13  [ТС] 9
Цитата Сообщение от TanT Посмотреть сообщение
может проще переделать по людски? но если следовать вашей логике то как-то так
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
69
70
71
72
73
74
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    clrscr();
    char our_string[100], buf[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 text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string);
        strcat(buf,our_string);
    } while (strcmp(our_string,my_string)!=0);
 
    strcpy(our_string,buf);
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
    
    int j=0;  
 
        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
        }
 
 
 
    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();
}
Здесь c exit-ом нормально,но программа не выводит правильно результаты,количество строк,слов и искомую строку?

Добавлено через 1 минуту
TanT, Здесь c exit-ом нормально,но программа не выводит правильно результаты,количество строк,слов и искомую строку?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 14:31 10
сейчас весь текст собрался в одну строку и получается беда. чтобы этого избежать, надо тогда не склеивать строки, а доблять их в массив. то есть получиться у тебя массив строк и по нему, построчно будешь производить поиск.
но лучше, воспользоваться кодом Андрейки

Добавлено через 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
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
69
70
71
72
73
74
75
76
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    //clrscr();
    char our_string[100][100], buf[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 cnt=0;
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string[cnt++]);
    } while (strcmp(our_string[cnt-1],my_string)!=0);
 
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
 for (int c=0; c<cnt; c++)
 {
     words = strtok(our_string[c]," . ; ? ! , ");
     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
     }
 } // по всему массиву
    
 
 
 
    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();
}
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:46  [ТС] 11
TanT, А ты сможешь создать этот массив строк,чтобы построчно считывать снего,и написать мне код,попробуй пож...просто я не хотел пока свою прогу изменять...

Добавлено через 11 минут
TanT, Да прога считает,но надо сделать так чтобы он exit не считывал,в результате он выводит строки и слова включая exit,как исправить?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 14:46 12
ну так на топик выше и создал. а свою прогу лучше отредактируй. не аккуратненько, развивайся
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:51  [ТС] 13
TanT, А написать код сможешь,как создать,пож...
А если в конце,когда результаты выводятся,просто cout-ы строк и слов на 1 уменьшить?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 15:27 14
я всё могу, что мне надо, а если я чего-то не могу...значит оно мне не надо...

язык у тебя всё таки С или С++? STL ты использовать будешь или категорически против?

Добавлено через 18 минут
Цитата Сообщение от ромыч Посмотреть сообщение
TanT, Да прога считает,но надо сделать так чтобы он exit не считывал,в результате он выводит строки и слова включая exit,как исправить?
изменить for (int c=0; c<cnt; c++) на for (int c=0; c<cnt-1; c++)
ну
строк и слов на 1 уменьшить
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 15:47  [ТС] 15
Цитата Сообщение от TanT Посмотреть сообщение
я всё могу, что мне надо, а если я чего-то не могу...значит оно мне не надо...

язык у тебя всё таки С или С++? STL ты использовать будешь или категорически против?
Язык у меня С++...Код Андрейки выводит ошибки,там через классы надо делать,менять...

Насчет редактирования,лучше отредактировать?так думаешь не пройдет?..

Добавлено через 6 минут
TanT,
Насчет редактирования,лучше отредактировать?так думаешь не пройдет?..

Добавлено через 11 минут
Цитата Сообщение от TanT Посмотреть сообщение
сейчас весь текст собрался в одну строку и получается беда. чтобы этого избежать, надо тогда не склеивать строки, а доблять их в массив. то есть получиться у тебя массив строк и по нему, построчно будешь производить поиск.
но лучше, воспользоваться кодом Андрейки

Добавлено через 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
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
69
70
71
72
73
74
75
76
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    //clrscr();
    char our_string[100][100], buf[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 cnt=0;
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string[cnt++]);
    } while (strcmp(our_string[cnt-1],my_string)!=0);
 
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
 for (int c=0; c<cnt-1; c++)
 {
     words = strtok(our_string[c]," . ; ? ! , ");
     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
     }
 } // по всему массиву
    
 
 
 
    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();
}
Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...

Добавлено через 46 секунд
TanT, Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 16:01 16
вижу я, другим занят, видешь подпись... освобожусь сделаю
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 18:28  [ТС] 17
Цитата Сообщение от TanT Посмотреть сообщение
вижу я, другим занят, видешь подпись... освобожусь сделаю
Язык у меня С++...Код Андрейки выводит ошибки,там через классы надо делать,менять...
Насчет редактирования,лучше отредактировать?так думаешь не пройдет?..

Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...

Добавлено через 7 минут
TanT, Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...

Добавлено через 58 секунд
TanT, Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 18:32 18
во-первых, какие ошибки выводит у тебя код Андрейки?
попробуй заменить первую строку #include <iostream> на #include <iostream.h>

ты знаешь контейнер string ?
0
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 19:41  [ТС] 19
Цитата Сообщение от TanT Посмотреть сообщение
во-первых, какие ошибки выводит у тебя код Андрейки?
попробуй заменить первую строку #include <iostream> на #include <iostream.h>

ты знаешь контейнер string ?
Контейнер я не знаю,там может код не подходит на С++?
Ты мне комментарии к последней программе напиши пожалуйста...
И еще вопрос,как сделать,чтобы после проверки текста если нет искомого слова вывести "искомое слово не найдено" в твоем примере?

Добавлено через 9 минут
TanT, Ошибки разные,от замены includ-а ошибка не исправляется,а выводит файл "iostrem"-а
не используется...
Может просто тот пример оставить,думаешь он не прокатит?
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 19:52 20
срИпя сердцем, дописал коментарии к своим строкам, понимаю что вы ещё юны, но код желательно оптимизировать

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
69
70
71
72
73
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    //clrscr();
    char our_string[100][100], buf[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 cnt=0;
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do                                                  // цикл... 
    {
        gets(our_string[cnt++]);    // ...считывает строки в массив our_string, инкрементируя cnt...
    } while (strcmp(our_string[cnt-1],my_string)!=0);       //...пока не встетит слово my_string
 
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
    for (int c=0; c<cnt; c++)           // перебор всех строк из массива our_string
    { // это всё твоё
        words = strtok(our_string[c]," . ; ? ! , ");
        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
        }
    } // перебор по всему массиву
 
 
 
 
    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();
}
Добавлено через 1 минуту
про "искомое слово не найдено", если счётчик слов нулевой выводи эту фразу. делов то
0
15.11.2009, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2009, 19:52

Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы
Ребята , помогите : нужно составить алгоритм и программу преобразования массива...

Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные
Помогите пжлст решить задачу:cry: В одномерном массиве, состоящем из n целых...

Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные
Дан массив из 12 элементов. Расположить элементы так,чтобы сначала были...


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

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

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