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

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

Войти
Регистрация
Восстановить пароль
 
viper[ua]
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 48
#1

Сравнение строк, игнорируя пробелы между словами - C++

14.03.2013, 22:08. Просмотров 719. Ответов 3
Метки нет (Все метки)

Написать собственную функцию, без использования функций стандартной библиотеки, которая сравнивает две строки, игнорируя количество пробелов между словами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 22:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение строк, игнорируя пробелы между словами (C++):

Выравнивание строк так, что между ее отдельными словами дополнительно вносятся пробелы - C++
Выравнивание строки заключается в том, что между ее отдельными словами дополнительно вносятся пробелы так,чтобы длина строки стала равной...

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

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

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. - C++
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++. Помогите пожалуйста Разработать функцию, которая сравнивает две строки,...

Сравнение строк, игнорируя различия в регистре - C++
Напишите программу, которая предлагает пользователю ввести две строки, а затем сравнивает их, игнорируя "регистровые" различия, т.е....

Сравнение строк (символьные массивы), игнорируя регистровые различия - C++
Я недавно начал изучать С++ и все не как не пойму что не так с моей программой... Задача: Напишите программу, которая предлагает...

3
Croessmah
Ушел
13768 / 8018 / 924
Регистрация: 27.09.2012
Сообщений: 19,740
Записей в блоге: 3
Завершенные тесты: 1
14.03.2013, 22:49 #2
Первое, что пришло на ум
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 
bool mystrcmp(char* str1,char * str2){
    while(*str1==' ') str1++;
    while(*str2==' ') str2++;
    while(*str1 && *str2){
        if(*(str1++)!=*(str2++))
            return false;
        while(*str1==' ') str1++;
        while(*str2==' ') str2++;
    }
    return *str1==*str2;
}
 
int main()
{
    char s1[] = "My s  t rin g  ", 
         s2[] = "  My stri n g  ";
    std::cout << std::boolalpha << mystrcmp(s1,s2) << std::endl;
    return 0;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7784 / 4820 / 750
Регистрация: 29.11.2010
Сообщений: 13,160
15.03.2013, 02:20 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
bool mystrcmp(const char *s1, const char *s2)
{
    while (*s1 && *s2)
    {
        if (*s1 == ' ')      s1++;
        else if (*s2 == ' ') s2++;
        else if (*s1++ != *s2++) return false;
    }
    return true;
}
 
int main()
{
    std::cout << std::boolalpha
        << "(Eniki, Eniki)      => " << mystrcmp("Eniki", "Eniki") << std::endl
        << "(Eniki, Eniki )     => " << mystrcmp("Eniki", "Eniki ") << std::endl
        << "( E niki , E n iki) => " << mystrcmp("  E niki  ", "E n iki") << std::endl
        << "(sEniki, Eniki)     => " << mystrcmp("sEniki", "Eniki") << std::endl
        << "(Eniki, Eniki s)    => " << mystrcmp("Eniki", "Eniki s") << std::endl;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7784 / 4820 / 750
Регистрация: 29.11.2010
Сообщений: 13,160
22.03.2013, 20:12 #4
Добавляю комменты по просьбе ТС-а
C++
1
2
3
4
5
6
7
8
9
10
bool mystrcmp(const char *s1, const char *s2)
{
    while (*s1 && *s2) // пока указатели s1 и s2 не указывают на NULL
    {
        if (*s1 == ' ')      s1++; // если указатель s1 указывает на пробел, инкримируем его
        else if (*s2 == ' ') s2++; // иначе, аналогичное сравнение со вторым
        else if (*s1++ != *s2++) return false; // иначе если s1 указывает не на тот же символ, что и s2 возвращаем ложь. При проверке инкримируем указатели
    }
    return true; // достигли конца, все ок, возвращаем истину
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2013, 20:12
Привет! Вот еще темы с ответами:

Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. - C++
Мое задание: убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. Вот программа...

Пробелы между словами\предложениями - C++
Помогите с заданием: Дан произвольный текст. Отредактировать текст так, чтобы: а) между словами был ровно один пробел; б)...

Строка: Удалить лишние пробелы между словами - C++
Задание: нужно удалить лишние пробелы между словами (если один пробел, то его нужно оставить). # include &lt;conio.h&gt; # include...

Выделить в тексте лишние пробелы между словами - C++
ЕЩе одна задачка из Павловской... Прошу помощи!!! Если вам лень решать всю задачу, то меня очень интересует второй пункт... Но буду рад...


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

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

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