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

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

Восстановить пароль Регистрация
 
_arty_
29 / 28 / 1
Регистрация: 10.07.2009
Сообщений: 316
18.12.2010, 20:01     Определить самую длинную строку в тексте #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++ Удалить самую длинную строку матрицы
C++ Определить самую длинную последовательность цифр в тексте
C++ Определить самую длинную и самую короткую из введенных строк
C++ Найти в тексте самую длинную последовательность из одинаковых букв
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;
}
//-----------------------------------------------------------------
 
} 
 
 }       
 
    }
Yandex
Объявления
20.12.2010, 16:44     Определить самую длинную строку в тексте
Ответ Создать тему
Опции темы

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