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

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

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

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

21.03.2014, 07:43. Просмотров 901. Ответов 5
Метки нет (Все метки)

Полное задание :
В предложении все слова начинаются с разных букв. Напечатать ( если можно ) слова предложения в таком порядке, чтобы последняя буква каждого слова совпадала с первой буквой следующего слова.
Что я намутил:
Разбиение предложения на массив слов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int _tmain(int argc, _TCHAR* argv[])
{
    const char separator[]=" \.,";
    char S[]="String, who budet razbita na slova ";
    char *Ptr=NULL;
    char **stroki;
    stroki = new char*[10];
    for (int i=0 ; i<10 ; ++i)
    stroki[i]=new char[10];
    int i=0;
    Ptr=strtok(S,separator); //Исходная строка будет изменена
    while (Ptr)
    {
        stroki[i] = Ptr;
       printf("%s",stroki[i]); //выводим слово из строки на экран
       i++;
       Ptr=strtok(0,separator); //указываем на новый токен
    }
    system("PAUSE");
    return 0;
}
Что дальше делать - понятия не имею..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2014, 07:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напечатать слова предложения в таком порядке, чтобы последняя буква каждого словасовпадала с первой буквой следующего слова (C++):

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

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

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

Напечатать все слова, в которых повторяется первая буква слова - C++
1)Задан текст.Напечатать все слова, в которых повторяется первая буква слова. 2)Задан текст. Напечатать все слова, имеющие четное...

Расположить слова в массиве символов в алфавитном порядке по первой букве слова - C++
Введите массив символов из 14 элементов. Расположить слова в алфавитном порядке по первой букве слова. Добавлено через 19 часов 40...

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения) - C++
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую букву последнего слова второго...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
21.03.2014, 09:15 #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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <memory.h>
 
void swap(char*& str1, char*& str2);
 
int main(int argc, char* argv[])
{
    static char str[256] = "object cache traffic end tie\0";
 
    printf("%s\n",str);
 
    char** words = new char*[256];
    memset((void*)words, 0x00, 4 * 256);
 
    char* word = strtok(str, " ");
    for (int index = 0; word != NULL; index++)
    {
        words[index] = new char[256]; 
        strcpy(words[index], word);
        word = strtok(NULL, " ");
    }
 
    for (int nindex = 0; words[nindex] != NULL; nindex++)
    {
        int rindex = nindex+1; bool found = false;
        char ch = *(words[nindex]+(strlen(words[nindex])-1));
        while (words[rindex] != NULL && found == false)
            found = (*words[rindex++] == ch) ? 1 : 0;
 
        if (found != false) 
            swap(words[nindex+1], words[rindex-1]);
    }
 
    for (int t = 0; words[t] != NULL; t++)
        printf("%s ",words[t]);
 
    printf("\n");
 
    _getch();
 
    return 0;
}
 
void swap(char*& str1, char*& str2)
 { char* _ts = str1; str1 = str2; str2 = _ts; }
Миниатюры
Напечатать слова предложения в таком порядке, чтобы последняя буква каждого словасовпадала с первой буквой следующего слова  
Nooby1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 32
21.03.2014, 09:27  [ТС] #3
Спасибо!
Но почему при вводе трёх слов на моём скриншоте, он не ставит "Klukva" вперёд?
Миниатюры
Напечатать слова предложения в таком порядке, чтобы последняя буква каждого словасовпадала с первой буквой следующего слова  
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
21.03.2014, 09:29 #4
При поиске не учитывается первое слово
Nooby1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 32
21.03.2014, 14:50  [ТС] #5
а можно как-нибудь его учесть?
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
21.03.2014, 18:54 #6
Очень сложно. Я подумаю. Скорее всего нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 18:54
Привет! Вот еще темы с ответами:

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

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

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

Удалить слова из предложения, в которых встречается буква e - C++
суть задачи такова : Есть строка неизвестной длины с англо-цифровыми буквами и словами. нужно удалить слова содержащие букву &quot;e&quot; (англ),...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.03.2014, 18:54
Ответ Создать тему
Опции темы

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