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

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Hqw33
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 21
25.03.2012, 17:56     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #1
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++.
Помогите пожалуйста Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 17:56     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами.
Посмотрите здесь:

C++ пользователь вводит строчку,а программа выводит количество пробелов между словами в строке.
C++ удаление пробелов между словами и буквами
C++ Функция сравнивает две строки, игнорируя различия в регистрах
Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами C++
C++ Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 18:07     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool is_compare(string& first, string& second)
{
    istringstream ss1(first);
    istringstream ss2(second);
    string firstword, secondword;
    while (ss1 >> firstword && ss2 >> secondword);
    {
        if (firstword != secondword)
            return false;
    }
 
    return true;
}
Hqw33
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 21
25.03.2012, 19:28  [ТС]     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #3
хммм... Без понятия что это)
Имелось в виду что то вроде этого.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
# include <locale>
#include <Windows.h>
using namespace std;
void main()
{
char str[100]="Hello, my dear friend!";
cin.getline(str,100);
char delimit[]=" .,!?-:";
char*p;
p=strtok(str,delimit);
int z=0;
while(p!=NULL)
{
    cout<<p<<endl;
    p=strtok(NULL,delimit);
    z++;
}
cout<<z;
}
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
# include <locale>
#include <Windows.h>
using namespace std;
void main()
{
int n;
char str [10]="123";
n=atoi(str);
cout<<n;
}
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 19:38     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #4
Цитата Сообщение от Hqw33 Посмотреть сообщение
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++
не вижу у вас фунции сравнения. То что вы написали это подсчет слов и перевод строки в число.
Просили с++, получайте
Hqw33
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 21
25.03.2012, 19:46  [ТС]     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #5
Не уверен но это кажется c++ - Building а не консолька... нет?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 19:53     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #6
это Standart Template Library, неотъемлемая часть с++
консоль тут не причем
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
25.03.2012, 19:55     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool is_equal(char * str1, char * str2)
{
    pch1 = strtok(str1, " ,.-!?");
    pch2 = strtok(str2, " ,.-!?");
    while (pch1 != NULL && pch2 != NULL)
    {
        if (strcmp(pch1, pch2) != 0)
            return false;
        pch1 = strtok (NULL, " ,.-!?");
        pch2 = strtok(NULL, " ,.-!?");
    }
    return (pch1 == NULL && pch2 == NULL);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 16:09     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами.
Еще ссылки по теме:

Строки определение максимального количества пробелов между словами C++
Увеличить в два раза количество пробелов между словами C++
C++ Определить функцию, которая, игнорируя исходное деление файла на строки, переформатирует его

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

Или воспользуйтесь поиском по форуму:
Hqw33
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 21
27.03.2012, 16:09  [ТС]     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. #8
Подскажите как в эту функцию вставить сам текст, который будет сравниваться?

Добавлено через 3 часа 19 минут
Кажется функция strtok нереентерабельная, грубо говоря - ее нельзя применять для двух строк.
И bool q(char * str1, char * str2) должна быть не в меин...
Не знаете как довести это все до ума?

Добавлено через 37 минут
Есть еще такой вариант

Но по нему имеются вопросы:
Для чего std::cout, что такое std, и для чего "::"?
И еще не совсем понятно как оно работает. В случаи если строки одинаковые выводит 0, если разные то 1 или -1, как это понимать?
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
#include <string.h>
#include <iostream>
void del2Space( char * str ) {
    char * p = str;
    while ( *p ) {
        *str = *p;
        str++;
        p++;
        while ( *p && *(p+1) && *p == ' ' && *(p+1) == ' ' ) {
            p++;
        }
    }
    *str = 0;
}
int compareNoSpaces( char * str1, char * str2 ) {
    del2Space( str1 );
    del2Space( str2 );
    return strcmp( str1, str2 );
}
int main()
{
    char str1[] = "Hello   world,  of    warkraft ! ";
    char str2[] = "Hello world,      of   warkraft   !  ";
    std::cout << compareNoSpaces( str1, str2 ) << std::endl;
}
Yandex
Объявления
27.03.2012, 16:09     Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами.
Ответ Создать тему
Опции темы

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