Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 07:11   #1
Erisu
 
Регистрация: 17.05.2011
Сообщений: 4
По умолчанию строки, с++

Помогите исправить ошибки, пожалуйста, а то никак не могу сообразить((

Дан текст, состоящий из N (2<=N<=10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию.

#include <vcl.h>
#pragma hdrstop
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused
char slova(char str[], char **qq, int r)
{char *p;
int g=r;
p=strtok(str," !?,.");
while (p!=NULL)
{
strcpy(qq[r],p);
r++;
p=strtok(NULL," !?,.");}
return r;}

int main(int argc, char* argv[])
{ int n,i,q=0,c=0,g=0,j=0; char *t,ff[80];
char str[10][80]={"I like to wearo high-heeledo shoesee, trousers oor jeans.",
"Aaaarrr ttttttr oot iyt tiropeweo!",
"Russia is very reach in oil, iron ore, natural gas, copper, nickel.",
"It is a wonderful sight you see our country from the plane.",
"Throughout its history the Zoo has had many well-known residents.",
"The lakes in Scotland are called locks.",
"Thames is busiest and most important river in Great Britain.",
"Although this vast collection was part of the Zoo's appeal.",
"These include species such as rudd, European eels, pink sea fans.",
"There is much rain and fog in autumn and in winter!"};
while((n<2)||(n>10))
{printf("Vvedite chislo strok ot 2 do 10:");
scanf("%d",&n);
printf("\n");}

printf("Dannie stroki:\n");
for (i = 0; i <n; i++)
{printf("%s\n",str[i]);
strcpy(ff,str[i]);
t=strtok(ff," !?,.");
while (t!=NULL)
{q++; t=strtok(NULL," ,.!?-");}
}

char **qq;
qq=(char**)calloc(q,sizeof(char*));
for (i = 0; i <n; i++)
{qq[i]=(char*)calloc(80,sizeof(char));}

int r=0;
for (i = 0; i <n; i++)
{
r=slova(str[i],qq,r);}

char *p;
p=(char*)calloc(n+1,sizeof(char));

for (i = 0; i <r; i++)
{ c=strlen(str[i]);
if (i==(c-1))
{ strcpy(qq[j],str[i]);
}
for (int g=0; g<(r-1); g++)
for (int j=g+1; j<r; j++)
if (strcmpi(qq[g], qq[j])>0)
{
strcpy(p,qq[g]);
strcpy( qq[g], qq[j]);
strcpy (qq[j], p);
}

printf("\n");
for (int g=0; g<r; g++)
printf("%s\n", qq[g]);

for (int i = 0; i<1000; i++)
free (qq[i]);
free (qq);

free (p);

getchar();getchar();
return 0;}
}
Erisu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Дбавление новой строки, после строки с подходящими параметрами RailOS Microsoft Office Excel 5 18.08.2010 10:12
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10