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

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

Войти
Регистрация
Восстановить пароль
 
_arty_
29 / 28 / 1
Регистрация: 10.07.2009
Сообщений: 316
#1

Определить самую длинную строку в тексте - C++

18.12.2010, 20:01. Просмотров 476. Ответов 1
Метки нет (Все метки)

Определить самую длинную строку в тексте. Найденную строку передавать в главную функцию.
И ещё, не могу понять почему если задать размер "3", то вводится только 2 строки и выводится соответственно тоже.....
Вот наработки:

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
77
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
//----------------------------------------------------------------------------------
char **zap_mas(int n)
{char **hstr;
int i;
hstr = new char*[n];
for (i = 0; i < n; i++) hstr[i] = new char[20];
clrscr();
cout<<"Vvedite text \n";
for (i = 0; i < n; i++) gets(hstr[i]);
return(hstr);
}
//----------------------------------------------------------------------------------
void prosm(char** mas, int n)
 
{for (int i = 0; i < n; i++) puts(mas[i]);}
//----------------------------------------------------------------------------------------
main()
{
char **str;
 
 
 
int n,i,j,p;
 
while (1)
    {cout<<"\n 1 - Zapolnenie strok";
    cout<<"\n 2 - Prozmotr strok";
    cout<<"\n 3 - Poisk";
    cout<<"\n 4 - Exit";
    cout<<"\n Your choose:";
    cin>>p;
 
    switch(p){
 //-----------------------------------------------------------------
     case 1:
{clrscr();
cout<<"Vvedite razmer strokovogo massiva \n";
cin>>n;
str = zap_mas(n);
getch();
 clrscr();
 break;
}
//----------------------------------------------------------------
        case 2:
                {clrscr();
        prosm(str,n);
                getch();
        clrscr();
                break;}
//----------------------------------------------------------------
case 3: {
 
}
//----------------------------------------------------------------
case 4: {  clrscr();
            return 0;
}
//-----------------------------------------------------------------
 
} //case
 
 }         //цикл while
 
//getch();
  //    return 0;
 
    }
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2010, 20:01     Определить самую длинную строку в тексте
Посмотрите здесь:

Определить самую длинную последовательность цифр в тексте - C++
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна...

Определить самую длинную и самую короткую из введенных строк - C++
Необходимо организовать ввод 3 названия городов. А потом вывести на экран консольно самое длинное и короткое название города. Лезут ошибки...

Найти в тексте самую длинную последовательность из одинаковых букв - C++
Здравствуйте! Нужно написать программу, которая выполняет следующие функции: найти в тексте самую длинную последовательность из одинаковых...

Найти в тексте самую длинную последовательность символов, не содержащую пробелов - C++
Нужно в тексте найти самую длинную последовательность символов, не содержащую пробелов. Если таких последовательностей с максимальной...

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

В заданном тексте найти самое длинное слово и самую длинную фразу - C++
У заданном тексте найти самое длинное слово и самую длинную фразу

В данном тексте найти самую длинную последовательность символов, не содержащую пробелов - C++
привет помогите решить) задача: В данном тексте найти самую длинную последовательность символов, не содержащую пробелов. Если таких...

Удалить самую длинную строку матрицы - C++
1. Критерий для поиска в массиве структур: Сотрудники со стажем более 10 лет и заработной платой более 15000! 2. Задача для обработки...

Найти самую длинную строку в файле - C++
Есть задача: Дан произвольный файл с некоторым количеством строк. Найти самую длинную строку и вывести ее. Попытался реализовать...

Найти самую длинную строку в файле - C++
Вроде все норм, вот только когда пытаюсь вывести через puts() - выводит все содержимое файла посимвольно и в столбик, а через Printf() -...

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

[C] Найти самую длинную строку и поместить ее после самой короткой - C++
Найти самую длинную строку и поместить ее после самой короткой.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_arty_
29 / 28 / 1
Регистрация: 10.07.2009
Сообщений: 316
20.12.2010, 16:44  [ТС]     Определить самую длинную строку в тексте #2
Практически всё сделал, за исключением правильного определения самой длинной строки, подправьте меня пожалуйста ув. программисты.

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <iostream>
#include <string.h>
//----------------------------------------------------------------------------------
//int len (char*);
 
 
/* find ()
{
 int i;
char s[5][50];
cout<<"Vvedite stroku \n";
for (i=0; i < 5; i++)  cin>>s[i];
for (i = 0; i < 5; i++) cout<<"\n"<<i+1<<". "<<len(s[i]);
getch();
    return 0;
}    */
 
 
int len (char* ch)
{
int k = 0; int i = 0;
while (ch[i++]) k++;
return k;
}
 
 
 
 
char **zap_mas(int n)
{char **hstr;
int i,k;
int m = 20;
hstr = new char*[n];
for (i = 0; i < n; i++) hstr[i] = new char[m];
clrscr();
cout<<"Vvedite text \n";
for (i = 0; i < n; i++) gets(hstr[i]);
 
return(hstr);
 
 
}
//----------------------------------------------------------------------------------
void prosm(char** mas, int n)
 
{int i;
for (i = 0; i < n; i++) puts(mas[i]);}
 
//----------------------------------------------------------------------------------------
using namespace std;
main()
{
char **str;
 
 
 
int n,i,j,p;
 
while (1)
    {cout<<"\n 1 - Zapolnenie strok";
    cout<<"\n 2 - Prozmotr strok";
    cout<<"\n 3 - Poisk";
    cout<<"\n 4 - Exit";
    cout<<"\n Your choose:";
    cin>>p;
 
    switch(p){
 //-----------------------------------------------------------------
     case 1:
{clrscr();
cout<<"Vvedite razmer strokovogo massiva \n";
cin>>n;
str = zap_mas(n+1);
//getch();
 clrscr();
 break;
}
//----------------------------------------------------------------
        case 2:
                {clrscr();
        prosm(str,n+1);
                getch();
        clrscr();
                break;}
//----------------------------------------------------------------
case 3: { clrscr();
 
/*char ch;
int count = 0;
cin>>ch;
while(ch != '.')
{
cout<<ch; count++;  cin>>ch;
}
cout<<" \n "<< count <<" characters read \n";
getch();
return 0;
*/
/*
char ch;
int count = 0;
cin.get(ch);
while(cin.fail()==false)
{
cout<<ch;
count++;
cin.get(ch);
}
cout<<" \n "<< count <<" characters read \n";
getch();
return 0;
*/
int i;
int x =  0; //len(str[0]);
for (i = 1; i < n+1; i++) cout<<"\n"<<i<<". "<<len(str[i]);
cout<<"\n";
for (i = 0; i < n+1; i++) if (len(str[i]) > x) x = i; cout<<x;
 
 
getch();
clrscr();
break;
}
 
 
//----------------------------------------------------------------
case 4: {  clrscr();
            return 0;
}
//-----------------------------------------------------------------
 
} //выборка
 
 }         //цикл while
 
//getch();
  //    return 0;
 
    }
//---------------------------------------------------------------------------
Добавлено через 20 часов 40 минут
Решил вот так:

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <iostream>
#include <string.h>
//----------------------------------------------------------------------------------
//int len (char*);
int len (char* ch)
{
int k = 0; int i = 0;
while (ch[i++]) k++;
return k;
}
 
 
 
 
char **zap_mas(int n)
{char **hstr;
int i,k;
int m = 80;
hstr = new char*[n];
for (i = 0; i < n; i++) hstr[i] = new char[m];
clrscr();
cout<<"Vvedite text \n";
for (i = 0; i < n; i++) gets(hstr[i]);
 
return(hstr);
 
 
}
//----------------------------------------------------------------------------------
void prosm(char** mas, int n)
 
{int i;
for (i = 0; i < n; i++) puts(mas[i]);}
 
//----------------------------------------------------------------------------------------
using namespace std;
main()
{
char **str;
 
 
 
int n,p;
 
while (1)
    {cout<<"\n 1 - Zapolnenie strok";
    cout<<"\n 2 - Prozmotr strok";
    cout<<"\n 3 - Poisk";
    cout<<"\n 4 - Exit";
    cout<<"\n Your choose:";
    cin>>p;
 
    switch(p){
 //-----------------------------------------------------------------
     case 1:
{clrscr();
cout<<"Vvedite razmer strokovogo massiva \n";
cin>>n;
str = zap_mas(n+1);
 clrscr();
 break;
}
//----------------------------------------------------------------
        case 2:
                {clrscr();
        prosm(str,n+1);
                getch();
        clrscr();
                break;}
//----------------------------------------------------------------
case 3: { clrscr();
 
int x =  0;
for (int i = 1; i < n+1; i++) cout<<"\n"<<i<<". "<<len(str[i]);
cout<<"\n";
for (int i = 0; i < n+1; i++) if (len(str[i]) > x) x = len(str[i]);
cout<<"\n"<<"Samaya bolshaya stroka soderzit "<<x<<" znak(a|ov) \n";
 
 
getch();
clrscr();
break;
}
 
 
//----------------------------------------------------------------
case 4: {  clrscr();
            return 0;
}
//-----------------------------------------------------------------
 
} 
 
 }       
 
    }
Ответ Создать тему
Опции темы

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