Kaktotak
1

Строки в С++....сравнение слов не получется...

19.12.2010, 18:32. Показов 2743. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прога для решения задачи: С клавиатуры вводятся две строки, содержащие некоторые слова.
Слова перечислены через запятую.
Исключить из первой строки слова, входящие во вторую строку.
Слова должны сравниваться без учета регистра символов.
Строка 1: world,cat,DOG,BALL
Строка 2: World,dog,processor,memory,programming
Результат: cat ball

Накалякал прогу...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream>
using namespace std;
char slovo[30];// задаем глобально

int count(char *s)
{
int n=1;
for (int i=0; i<strlen(s);i++)
if (s[i]==',')
n++;
return n+1;
}

char*get(char* s, int n, char*slovo) //выковыриваем слово
{

int l=0,i=0;
int el=0;
if (n==0) {while (s[i]!=',') {slovo[i]=s[i];i++;}slovo[i]='\0';}
else
for (int i=0; i<strlen(s); i++)
if (s[i]==',')
{
el++; if (el==n) while(s[i+1]!=','){
if (s[i+1]!=','){
slovo[l]=s[i+1];
i++;
l++;
}}
slovo[l]='\0';}

return slovo;

}
void main()
{
char str1[100], str2[100], s[100];
//вводим 1 строку
puts("stroka1: ");
gets(str1);
//вводим 2 строку
puts ("stroka2: ");
gets(str2);
int n=0;
for (int i=0; i<count(str1); i++)
{

char* W1=get(str1, i,slovo);//вытаскиваем слово из строки 1
bool t=true;
for (int j=0; j<count(str2); j++)
{
char* W2=get(str2, j,slovo);//вытаскиваем слово из строки 2
if(stricmp (W1,W2)==0)//если слова равны
t=false;
}
if (t==true)
cout<<W1;
}
getch();
}


Функция get сама по себе работает, например , если написать cout<<get(str2, 1,slovo), то

слово она вытащит и на экран все выводится... а вот при сравнении ничего не получается

(stricmp (W1,W2)==0))....уже мучаю ее несколько дней, завтра последний срок

сдачи....помогите бездарю...заранее

Добавлено через 1 минуту
спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2010, 18:32
Ответы с готовыми решениями:

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;, &quot;,&quot;, &quot;.&quot;, &quot;_&quot;, &quot;&quot;&quot;),...

Не получется скомпилировать
Преподаватель дал лабу, последним заданием была скомпилировать проект, прочитав страницы интернета...

что то не получется
нужно написать программу на языке Си При создании темы условие задачи вводим руками. Для формул...

Не получется отладить программу
Программа ведомость результатов экзаменационной сессии. выдает такие ошибки: ...

2
lilcassie
27.12.2010, 05:28 2
кааак решили? у меня такая же проблема(((
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.12.2010, 06:38 3
strcmp(first, second) - сравнение С-строк если что, first и second параметры типа char* (const char*).
Возвращает 0 если строки равны, меньше нуля, если первая меньше второй по лексикограф. порядку, больше нуля, если больше соответственно.
2
27.12.2010, 06:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2010, 06:38
Помогаю со студенческими работами здесь

Не получется подключить принтер
Купила по случаю матричный принтер. Не смейтесь, просчитала, что будет дешевле печатать договоры на...

Не получется указать путь к файлу
program lab_7; uses crt; const FileName='MyFile.txt'; label 1; var G:text; n:char;

Не получется вызвать шаблон функции
Уважаемые пользователи, подскажите почему не вызывается шаблон, а в процессе компиляции вылетает...

Не получется войти в учетную запись
Доброго времени суток! Проблема такова: при попытке входа в гостевую учетную запись, система ее...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru