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

Сравнение строк (с игнорированием множественных пробелов) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Human abstract
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 5
13.12.2011, 18:34     Сравнение строк (с игнорированием множественных пробелов) #1
Помогите плиз написать функцию и саму программу на С

Задание: Функция WordCmp(s1,s2)
Назначение: сравнение строк (с игнорированием множественных пробелов).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.12.2011, 18:41     Сравнение строк (с игнорированием множественных пробелов) #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int WordCmp (char *s1, char *s2)
{
        while ( *s1 || *s2 )
                if ( ( *s1 - *s2 ) && ( *s1 !=' ' ) && ( *s2 != ' ' ) )
                        return *s1 - *s2 ;
                else 
                {
                        if ( *s1 == ' ' && *s2 != ' ' )
                                ++s1;
                        else
                                if ( *s2 == ' '  && *s1 != ' ' )
                                        ++s2;
                                else
                                {
                                        ++s1;
                                        ++s2;
                                }
                }
        return 0;
}
Можно еще оптимизировать
Human abstract
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 5
13.12.2011, 18:46  [ТС]     Сравнение строк (с игнорированием множественных пробелов) #3
За функцию спасибо
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.12.2011, 18:53     Сравнение строк (с игнорированием множественных пробелов) #4
Human abstract, чуть-чуть изменил, посмотрите новую, в предыдущем посте

Добавлено через 6 минут
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
26
27
28
29
30
31
#include <stdio.h>
 
int WordCmp (char *s1, char *s2)
{
        while ( *s1 || *s2 )
                if ( ( *s1 - *s2 ) && ( *s1 !=' ' ) && ( *s2 != ' ' ) )
                        return *s1 - *s2 ;
                else 
                {
                        if ( *s1 == ' ' && *s2 != ' ' )
                                ++s1;
                        else
                                if ( *s2 == ' '  && *s1 != ' ' )
                                        ++s2;
                                else
                                {
                                        ++s1;
                                        ++s2;
                                }
                }
        return 0;
}
 
int main ()
{
   char s1[]="Hello world  ";
   char s2[]=" Hello  world ";
   
   printf ("%d", WordCmp (s1,s2) );
   
}
http://liveworkspace.org/code/e187c0...db344608b4c34a
Yandex
Объявления
13.12.2011, 18:53     Сравнение строк (с игнорированием множественных пробелов)
Ответ Создать тему
Опции темы

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