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

Напечатать симметричные слова из текста - C++

Восстановить пароль Регистрация
 
Blin4eg
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 7
04.04.2011, 15:59     Напечатать симметричные слова из текста #1
Необходимо напечатать симметричные слова из текста.
мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
void main()
{
char S;
char A[80]; /*массив для слова*/
int i, k; /*к-длина слова*/
printf ("напишите предложение с точкой в конце: \n");
for (i=0;S=' '; k=0; i<=79; i++)
{
S=getchar();
if (S==' ') continue;
if (S=='.') break;
... /*не знаю, как найти симметричные слова =(*/
}
if (i==80||k==0)
printf ("неверное предложение \n");
else
{
A[k]='\0'; /*конец строки*/
printf ("последнее слово: %S", A);
}
} /*конец*/
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.04.2011, 16:08     Напечатать симметричные слова из текста #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <string.h>
 
int test(const char * word){
    const char * head, * tail;
 
    for ( head = word, tail = word + strlen(word) - 1; head < tail; ++head, --tail )
        if ( *head != *tail )
            break;
    return *head - *tail;
}
 
#define DELIM " ,.!?;:\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
 
    while ( printf("\nString: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) )
            if ( ! test(p) )
                printf("%s\n", p);
 
    return 0;
}
grivus132
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 5
04.06.2013, 21:45     Напечатать симметричные слова из текста #3
Цитата Сообщение от easybudda Посмотреть сообщение
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
#include <stdio.h>
#include <string.h>
 
int test(const char * word){
    const char * head, * tail;
 
    for ( head = word, tail = word + strlen(word) - 1; head < tail; ++head, --tail )
        if ( *head != *tail )
            break;
    return *head - *tail;
}
 
#define DELIM " ,.!?;:\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
 
    while ( printf("\nString: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) )
            if ( ! test(p) )
                printf("%s\n", p);
 
    return 0;
}
уважаемый easybudda, напишите пожайлуйста пару комментариев к коду.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.06.2013, 23:14     Напечатать симметричные слова из текста #4
Цитата Сообщение от grivus132 Посмотреть сообщение
пару комментариев к коду
Скажите, что не понятно - могу и поподробнее...
grivus132
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 5
05.06.2013, 00:03     Напечатать симметричные слова из текста #5
Цитата Сообщение от easybudda Посмотреть сообщение
Скажите, что не понятно - могу и поподробнее...
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
#include <stdio.h>
#include <string.h>
 
int test(const char * word){
    const char * head, * tail;
 
    for ( head = word, tail = word + strlen(word) - 1; head < tail; ++head, --tail ) 
        if ( *head != *tail )
            break;
    return *head - *tail;
}
 
#define DELIM " ,.!?;:\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
 
    while ( printf("\nString: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) // ??
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) ) // ??
            if ( ! test(p) )
                printf("%s\n", p);
 
    return 0;
}
Yandex
Объявления
05.06.2013, 00:03     Напечатать симметричные слова из текста
Ответ Создать тему
Опции темы

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