Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки в Си
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
snopy
Помогите пожайлуста разобратся где в программе ошибка.
Ввести с клавиатуры строку не более 128 символов. Сформировать массив строк, в который скопировать слова исходного текста. При наличии в строке повторяющихся слов, в формируемом массиве держать только одну копию. В качестве разделителей между словами в исходной строке используются пробел и точка. Сформированный массив строк выдать на экран.
Вот что у меня получилось. Компилятор Turbo C++

#include <conio.h>
#include <string.h>
#include <iostream.h>
#include <ctype.h>
#define true 1
#define false 0

void copy(char *str1, char *str2, int _start, int _end)
{
len1=strlen(str1);
j=i-1;
for (int i = 0; i <= len1; i++)
{
if(str2[_start] == str1[i])
n = i+1;
for(j = n; n +_end -_start; n++)
{
if (str1[n] == str2[_start++])
k++;
}
If(k != _end - _start+1&&str1[n+1] == ‘ ‘)

for ( p = _start; p <= _end; p++)
str1[j++] = str2[p];


}
str1[_end - _start + 1] = '\0';
}

void main()
{
clrscr();
char str[128];

cout<<"Vvedite stroku: ";
gets(str);

char Str1[128];

int count = 0, start = 0, end = 0, len = strlen(str);
int i,j,len1,n,k;

str[len+1] = ' ';

for (i = 0; i <= len+1; i++)
{
if ((str[i] == ' ')
{
end = i - 1;
if ((end - start) > 0)
copy(Str1, str, start, end);
start = i + 1;
}
else
}
cout<<”Poluchivsha9s9 stroka: ”<<str1;
getch();
}


MaximumGame
может я не прав, но не объявлены локальные переменные в функции copy
volvo
Цитата
Помогите пожайлуста разобратся где в программе ошибка.
В синтаксисе ошибка, твоя программа элементарно не пройдет компиляцию, потому что ты накрутил столько лишнего... blink.gif Все проще: в Си есть функция strtok, которая заданную строку разбивает на слова (токены) согласно списку разделителей. Все, что тебе останется сделать - это при получении очередного слова пробегать по массиву, где хранятся ранее найденные слова, и проверять, не встречалось ли текущее слово раньше...

На форуме были примеры использования strtok, поищи в этом разделе.

И потом: не мешай в одну кучу Сишные конструкции и С++ - поток cout. Пользуйся printf-ом или puts.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.