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

Строка символов - C++

Восстановить пароль Регистрация
 
zidans
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 45
16.01.2011, 17:49     Строка символов #1
Здравствуйте, помогите пожалуйста с дополнительным вопросом по программе.

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

Так вот, дополнительный вопрос заключается в следующем: надо подсчитать количество слов в ответе (для данного примера это должно быть 3). То есть каким то макаром надо что-то изменить или дополнить в проге.


# 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:;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 17:49     Строка символов
Посмотрите здесь:

C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. C++
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
C++ Дана строка символов. Подсчитать общее число вхождений символов
Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н C++
C++ Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
Дана строка символов. Проверьте,является ли данная строка палиндромом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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