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

Перенести первую букву в конец слова - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
24.03.2013, 16:53     Перенести первую букву в конец слова #1
Напечатать все слова, отличающиеся от последнего слова, перед печатью перенеся первую букву в конец слова.
Вот мой код, я уже вывожу слова без первой буквы и не равные последнему.
Вопрос, как перенести первую букву в конец слова?
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
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <locale>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[300] = "";
    char sl[300];
    char sp[100];
    int i, count;
    cout<<"Введите текст из малых латинских букв с минимум одним пробелом между словами. В конце поставьте точку. "<<endl;
    gets(str);
    cout<<endl;
    cout<<"Полученная строка: ";
 
    if(str[strlen(str)-1] != '.')
    cout<<"Ошибка: в конце не введена точка"<<endl;
 
    char *del = " ."; // разделители слов(пробел и точка)
    char *arr[30] = {NULL}; // контейнер для хранения слов(обнуляем его содержимое)
    int size, j;
    char *p = NULL;// нужные в дальнейшем переменные
    for(p = strtok(str, del), size = 0; p; p = strtok(NULL, del), ++size) // разбиваем строку на слова и подсчитываем их количество в size
    {
        arr[size] = p + 1; //каждое слово очищаем от первой буквы и кладём в контейнер
    }
    for(j = 0; j < size; ++j)// для каждого слова в контейнере
    {
        if(strcmp(arr[j], arr[size - 1]))// если оно не равно последнему
        {
            cout<<arr[j]<<" ";
        }
    }
 
    system("pause");
    return 0;
}
Помогите пожалуйста доделать программу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 16:53     Перенести первую букву в конец слова
Посмотрите здесь:

C++ Дан одномерный массив A(20). Первую половину перенести в конец
C++ С клавиатуры вводится многострочный текст. Распечатать слова из текста, преобразовав их следующим образом: · перенести последнюю букву в начало слова;
Написать функцию, меняющую первую букву каждого слова в строке на номер слова. C++
Написать функцию, меняющую первую букву каждого слова в строке на номер слова C++
Написать программу, меняющую первую букву каждого слова на эту же букву верхнего регистра C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
24.03.2013, 17:39     Перенести первую букву в конец слова #2
не очищать каждое слово от первой буквы, а первую букву изымать, остальные буквы сдвигать вперёд, первую букву класть в конец
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
24.03.2013, 18:33  [ТС]     Перенести первую букву в конец слова #3
А можете всё это в мой код вписать, если не сложно
Wizard_
1 / 1 / 0
Регистрация: 24.03.2013
Сообщений: 6
24.03.2013, 20:09     Перенести первую букву в конец слова #4
Строчки с 28 по 38 замени на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    char letter[256]={NULL};//массив хранящий первые буквы
    for(p = strtok(str, del), size = 0; p; p = strtok(NULL, del), ++size) // разбиваем строку на слова и подсчитываем их количество в size
    {
        letter[size] =p[0];//сохраняем первую букву
        arr[size] = p + 1; //каждое слово очищаем от первой буквы и кладём в контейнер
    }
    for(j = 0; j < size; ++j)// для каждого слова в контейнере
    {
        if(strcmp(arr[j], arr[size - 1]))// если оно не равно последнему
        {
            cout<<arr[j]<<letter[j]<<" ";//выводим слово, потом его первую букву
        }
    }
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
24.03.2013, 20:21  [ТС]     Перенести первую букву в конец слова #5
Спасибо большое! Вы мне очень помогли!
Yandex
Объявления
24.03.2013, 20:21     Перенести первую букву в конец слова
Ответ Создать тему
Опции темы

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