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

Обработка символьной информации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задание... о золотой горе с использованием рекурсии http://www.cyberforum.ru/cpp-beginners/thread229796.html
Пути в числовом треугольнике начинаются от верхнего числа. От любого числа можно перейти к одному из двух соседних чисел в следующей строке. Вычислить максимальную среди сумм чисел, расположенных на путях, заканчивающихся каким-нибудь числом в основании треугольника, и найти один из путей с этой суммой. В следующем треугольнике он образован выделенными числами: 7 3 8 8 1 0 2 7 ...
C++ Динамическое программирование. Вложенные коробки. Необходимо написать три версии алгоритма для решения предложенной задачи. • неэффективная, при помоши рекуррентного спуска. • с использованием динамического программирования. • модификация первой, основанная на механизме «мемоизации». Задача: Даны N коробок в форме прямоугольных параллелепипедов размерами ai*bi*ci. Некоторые из них, как правило, можно вложить в другие. Толщина стенок... http://www.cyberforum.ru/cpp-beginners/thread229795.html
Как подсчитать количество вхождений подстроки в строку C++
Добрый вечер! Как можно подсчитать количество вхождений строки S2 в строку S1? Допустим: S1= dfsgsffgsrr S2= gs
C++ Количество слов и цифр в строке, и последовательность
Помогите, осталось решить всего 2 задачи из 10 заданных)) :) Нужно дописать решение, но чтобы его принимал компилятор BORLANDC, потому что сдаем пока только на нём. В первой задание: Сколько слов и цифр в строке? Написал, как найти количество слов, но как вычислите количество цифр? //254(3).cpp #include <stdio.h> #include <conio.h> enum {OUT, IN};
C++ Составить фрагмент программы http://www.cyberforum.ru/cpp-beginners/thread229760.html
С коментприями, если можна!!!
C++ Составить программу С коментприями подробнее

Показать сообщение отдельно
zidans
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 45

Обработка символьной информации - C++

16.01.2011, 20:22. Просмотров 276. Ответов 0
Метки (Все метки)

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

По данному заданию написана программа
Дана строка символов. Распечатать слова, отличные от последнего, оставив в каждом слове только первые вхождения каждой буквы.
например:
"Ptici preleteli vesna prichla"
на экран он выводит
"Ptic prelti vesna"

Так вот, дополнительный вопрос заключается в следующем: надо подсчитать количество слов в ответе (для данного примера это должно быть 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
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# include<iostream.h>
# include<math.h>
# include<string.h>
# include<stdio.h>
# include<ctype.h>
 
void main(void)
{
M:
int n, i, j=0, t, k=0, p, q=0, z=0, w=0,x=0, b=0, m=0, g=0;
int r[100][2];
char *s;
s=new char[100];
char *c;
c=new char[100];
char *a;
a=new char[100];
char *y;
y=new char[100];
cout <<"vvod texta:"<<endl;
cout <<""<<endl;
gets(s);
//gets(c);
cout <<""<<endl;
n=strlen(s);
cout <<"kolichestvo simvolov n="<<n<<endl;
for (i=0;i<n;i++)
{
t=isalnum(s[i]);
if (t==0)
{
r[k][1]=i;
k++;
}
}
t=(r[k-1][1])+1;
cout <<"kolichestvo slov k="<<k+1<<endl;
if (k==0)
t=0;
cout <<"index poslednego slova i="<<t<<endl;
cout <<""<<endl;
 
 
cout <<"..........................."<<endl;
cout <<"otvet:"<<endl;
 
 
 
// posledn slovo zapishem v "c"
cout <<"poslednego slovo"<<endl;
for (p=t;p<n;p++)
{
c[z]=s[p];
z++;
}
 
 
for (i=0;i<z;i++)
cout<<""<<c[i];
cout <<""<<endl;
 
 
cout <<"konecny text"<<endl;
for (i=0;i<k;i++)
 
{ 
w=r[i][1]-q;
//cout<<"w="<<w<<endl;
if (w==z)
{ 
j=0;
for (p=q;p<r[i][1];p++)
{
a[j]=s[p];
j++;
}
 
for (j=0;j<z;j++)
{
if(a[j]!=c[j])
x++;
}
 
 
if (x>0)
{ 
b=0;
y[b]=s[q];
// ubiraet povtoryaushiesya bukvy
for (p=q+1;p<=r[i][1];p++)
{
g=0;
for (m=0;m<=b;m++)
if (y[m]!=s[p])
{
g++;
if (m==b)
if (m==g-1)
{ 
b++;
y[b]=s[p];
}
}
}
 
 
for (p=0;p<b;p++)
cout<<""<<y[p];
}
 
cout <<" ";
x=0;
 
 
 
 
}
else
{ 
b=0;
y[b]=s[q];
// ubiraet povtoryaushiesya bukvy
for (p=q+1;p<=r[i][1];p++)
{
g=0;
for (m=0;m<=b;m++)
if (y[m]!=s[p])
{
g++;
if (m==b)
if (m==g-1)
{ 
b++;
y[b]=s[p];
}
}
}
 
 
for (p=0;p<b;p++)
cout<<""<<y[p];
}
cout <<" ";
q=r[i][1]+1;
 
 
}
 
cout <<""<<endl;
cout <<"=========================="<<endl;
cout <<""<<endl;
cout <<""<<endl;
cout <<"vihod ('yes'=1)"<<endl;
cout <<"yes=";
cin>>i;
if (i==1)
goto K;
else
goto M;
 
K:;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru