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

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

Войти
Регистрация
Восстановить пароль
 
Blin4eg
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 7
#1

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

04.04.2011, 15:59. Просмотров 1117. Ответов 4
Метки нет (Все метки)

Необходимо напечатать симметричные слова из текста.
мой код:
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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2011, 15:59     Напечатать симметричные слова из текста
Посмотрите здесь:

Напечатать симметричные слова из строки - C++
Доброго времени суток. Имеется такая задача: &quot;Дана последовательность слов. Напечатать те слова последовательности, которые отличны от...

Напечатать слова, которые отличны от последнего слова текста, предварительно удалив из слова последнюю букву - C++
Дана последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами не менее...

Задан текст, напечатать слова этого текста отличные от последнего слова - C++
Задан текст.напечатать слова этого текста отличные от последнего слова удалить в каждом из них первую букву. Нужно сделать именно через...

Напечатать все слова из текста, отличные от слова hello. - C++
Добрый день товарищи!!!Выручайте!)Зачет по программированию завтра сдавать,а я не знаю как последнюю лабораторку сделать. Задание...

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

Напечатать слова текста в алфавитном порядке - C++
3. Задан текст. Слова разделены пробелом. Напечатать слова этого текста в алфавитном порядке.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,502
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
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,502
04.06.2013, 23:14     Напечатать симметричные слова из текста #4
Цитата Сообщение от grivus132 Посмотреть сообщение
пару комментариев к коду
Скажите, что не понятно - могу и поподробнее...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 00:03     Напечатать симметричные слова из текста
Еще ссылки по теме:

Определить и напечатать слова минимальной длины из текста - C++
Составить программу, которая будет Определять и печатать слова минимальной длины из текста в файл (в C++) Условия: -чтобы текст...

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

Найти слова, отличающиеся от последнего слова, и одновременно симметричные - C++
Слова текста из малых латинских букв записаны не менее чем через один пробел; БЕЗ ИСПОЛЬЗОВАНИЯ КОНСТРУКЦИИ STRING: а) написать программу...

Напечатать в столбик первые слова всех предложений текста - C++
Напечатать в столбик первые слова всех предложений текста.

Напечатать в столбик последние слова всех предложений текста - C++
Текст из файла считывается и записывается во второй файл Напечатать в столбик последние слова всех предложений текста.

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


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

Или воспользуйтесь поиском по форуму:
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     Напечатать симметричные слова из текста
Ответ Создать тему
Опции темы

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