Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Savard
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 4
#1

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

16.10.2011, 22:20. Просмотров 460. Ответов 6
Метки нет (Все метки)

Здраствуйте.
Помогите пожалуйста с написанием программы на С (не ++).

"Введите предложение. Слова предложения, содержащие две или более одинаковые буквы переместить в другое предложение."

Спасибо.
http://www.cyberforum.ru/cpp-beginners/thread1751396.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 22:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Слова предложения, содержащие две или более одинаковые буквы переместить в другое предложение (C++):

Вывести на экран все слова данного предложения, содержащие два или более одинаковых символа
С клавиатуры вводится строка символов, представляющая собой предложение со...

Упорядочить по алфавиту буквы каждого слова и удалить слова, содержащие одинаковые буквы
Преобразовать данное предложение, упорядочив по алфавиту буквы каждого слова и...

В строке найти слова содержащие ровно две буквы d
Дана строка, в которой слова разделены одним пробелом. Напечатать все слова ,...

В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
Всем привет! Помогите написать программу! В предложении найти и вывести на...

Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество
Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и...

6
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
16.10.2011, 22:25 #2
В чем проблема? Разбиваем строку на токены, считаем количество одинаковых букв
0
NinGAZ
14 / 14 / 4
Регистрация: 27.07.2011
Сообщений: 162
16.10.2011, 22:29 #3
хм,ну тут нужно парсить строку через пробел,а вот там через подстроки проверку на повторяющиеся символы.
0
Savard
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 4
16.10.2011, 22:29  [ТС] #4
Цитата Сообщение от Dekio Посмотреть сообщение
В чем проблема? Разбиваем строку на токены, считаем количество одинаковых букв
Проблема в том, что не получается создать цикл для рассмотрения каждого слова. Пытался рассматривать каждый символ строки по отдельности (отсекая область просмотра пробелами по оба конца), но ничего путного не вышло.
0
Net_Wanderer
235 / 208 / 29
Регистрация: 08.06.2011
Сообщений: 467
16.10.2011, 23:08 #5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
32
33
34
35
36
37
#include <stdio.h>
#include <string.h>
 
#define DELIM " .,:;?!\n"
#define MAXLINE  1000
 
int iscmpofunique(char *s);
 
int main()
{
    char line[MAXLINE], *p;
 
    printf("enter a sentence: ");
    fgets(line, MAXLINE, stdin);
    for (p = strtok(line, DELIM);
        p != NULL;
        p = strtok(NULL, DELIM))
            if (iscmpofunique(p))
                printf("%s ", p);
    putchar('\n');
    return 0;
}
 
/*
 * iscmpofunique: checks whether s is
 * composed of only unique characters 
 */
int iscmpofunique(char *s)
{
    char *r, *t;
 
    for (t = s; *t != '\0'; t++)
        for (r = t + 1; *r; r++)
            if (*t == *r)
                return 0;
    return 1;
}
1
Savard
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 4
17.10.2011, 16:46  [ТС] #6
Большое Спасибо!
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
17.10.2011, 18:07 #7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

немного по-другому:
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>
    
#define STR_LEN 256
#define STR_MASK "%255[^\n]%*c"
#define DELIM " ,.!?;:\t"
 
int have_doubling_chars(const char * wrd){
    return ( *wrd ) ? ( strchr(wrd + 1, *wrd) ) ? 1 : have_doubling_chars(wrd + 1) : 0;
}
 
int main(void){
    char str[STR_LEN], * p;
    
    while ( printf("String: ") > 0 && scanf(STR_MASK, str) == 1 ){
        printf("Result: ");
        for ( p = strtok(str, DELIM); p; p = strtok(NULL, DELIM) )
            if ( have_doubling_chars(p) )
                printf("%s ", p);
        printf("\n");
    }
    
    return 0;
}
1
17.10.2011, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 18:07
Привет! Вот еще темы с решениями:

Сформировать строку, в которую попадут только те слова, где одинаковые буквы встречаются более 2 раз
Дан текст состоящий не менее чем из 5 слов,сформировать строку,в которую...

Сформировать строку, в которую попадут только те слова, где одинаковые буквы встречаются более двух раз
Ребят помогите сро4но, 2 задачи не полу4аются, буду признателен если...

Используя следующий фрагмент программы,введите перечисленные ниже слова из списка С содержащие ровно две буквы d
Ребят помогите.нужно написать прогу на С++.Проблема со строками я вообще без...

Дано предложение. В нем только два слова одинаковые. Найти эти слова
Дано предложение. В нем только два слова одинаковые. Найти эти слова. Заранее...


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

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

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