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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
zidans
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 45
#1

Подсчет количества слов в предложении - C++

17.01.2011, 19:58. Просмотров 1077. Ответов 1
Метки нет (Все метки)

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

2. Подсчитать количество слов в получившемся предложении.

Вот код программы на 1 вопрос.

# 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:;
}


--------------------------------------------------------------------------------
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2011, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчет количества слов в предложении (C++):

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

Подсчет слов в предложении - C++
Написала программу, но в ней есть ошибка. Самой найти не получается, программа считает знак &quot;-(тире)&quot; за отдельное слово. Помогите,...

Подсчет числа слов в предложении до точки - C++
Напишите программу,которая считает сколько слов в предложении до точки, с использованием getchar

Подсчёт количества слов в предложении - C++
Помогите пожалуйста, нужно написать программу ,которая посчитает сколько слов в предложении

Подсчет количества слов - C++
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов, имеющих нечетную длину; вводит на экран частоту...

Подсчет количества слов - C++
Допустим, дана строка: &quot;129 s23 ertr 234 0 e&quot; Как подсчитать количество слов, состоящих только из латинских букв?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
18.01.2011, 10:04 #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
#include <iostream>
#include<vector>
using namespace std;
 
void un(string& s){
    string::size_type ind;
    for(int i=0; i<s.size()-1; ++i){
        while((ind=s.find(s[i], i+1))!=string::npos)
            s.erase(ind, 1);
    }
    cout<<s<<" ";
}
 
int main(){
    string word;
    int meter=0;
    cout<<"input text(0 for continue)\n";
    vector<string> v;
    while(cin>>word){
        if(word=="0")break;
        v.push_back(word);
    }
    for(int i=0; i<v.size(); ++i){
        if(v[i]==*(v.end()-1)) {
            v.erase(v.begin()+i);
            --i;
            }
        else{
            un(v[i]);
            ++meter;
        }
    }
    cout<<"\n\n"<<meter;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 10:04
Привет! Вот еще темы с ответами:

Подсчет количества слов - C++
Есть два файла, 1.txt и 2.txt Задание: 1) Скопировать в файл 2.txt только те строки из 1.txt, которые начинаются с буквы &quot;а&quot; ...

Подсчет числа слов в предложении с использованием перечислений. Найти ошибку в коде - C++
где в коде ошибка? // подсчет чила слов в предложении с использованием перечислений.cpp: определяет точку входа для консольного...

Подсчет количества одинаковых слов - C++
http://pastebin.com/s8Ewa9Dp // Zadanie2.cpp: определяет точку входа для консольного приложения. // /* 7. Дан текст. Группы...

Подсчет количества слов в строке - C++
Помогите пожалуйста написать программу для подсчета количества слов в строке


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

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

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