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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
#1

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

24.03.2013, 16:53. Просмотров 1743. Ответов 4
Метки нет (Все метки)

Напечатать все слова, отличающиеся от последнего слова, перед печатью перенеся первую букву в конец слова.
Вот мой код, я уже вывожу слова без первой буквы и не равные последнему.
Вопрос, как перенести первую букву в конец слова?
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;
}
Помогите пожалуйста доделать программу
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 16:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перенести первую букву в конец слова (C++):

Перенести первую букву каждого слова в его конец - C++
В произвольном тексте,хранящемся в файле и содержащем не более 10 строк(в каждой строке не более 80 символов),перенести первую букву...

Переместить первую букву слова в конец слова(Строки) - C++
Здравствуйте уважаемые форумчане. Помогите пожалуйста. Напечатать все слова, заранее перенести первую букву слова в конец слова. Нужно...

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

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

Написать программу, меняющую первую букву каждого слова на эту же букву верхнего регистра - C++
Дан массив из 10 строк по 80 символов, требуется заменить первую букву в каждом слове на эту же букву верхнего регистра(например: вводим...

Дан одномерный массив A(20). Первую половину перенести в конец - C++
Дан одномерный массив A(20). Первую половину перенести в конец. Именуйте темы осмысленно. Название темы должно максимально полно...

4
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
24.03.2013, 17:39 #2
не очищать каждое слово от первой буквы, а первую букву изымать, остальные буквы сдвигать вперёд, первую букву класть в конец
1
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
24.03.2013, 18:33  [ТС] #3
А можете всё это в мой код вписать, если не сложно
0
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]<<" ";//выводим слово, потом его первую букву
        }
    }
1
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
24.03.2013, 20:21  [ТС] #5
Спасибо большое! Вы мне очень помогли!
0
24.03.2013, 20:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 20:21
Привет! Вот еще темы с ответами:

Написать функцию, меняющую первую букву каждого слова в строке на номер слова. - C++
Написать функцию, меняющую первую букву каждого слова в строке на номер слова. Продемонстрировать ее использование в программе.

Написать функцию, меняющую первую букву каждого слова в строке на номер слова - C++
Написать функцию, меняющую первую букву каждого слова в строке на номер слова. Продемонстрировать ее использование в программе. ...

С клавиатуры вводится многострочный текст. Распечатать слова из текста, преобразовав их следующим образом: · перенести последнюю букву в начало слова; - C++
С клавиатуры вводится многострочный текст. Распечатать слова из текста, преобразовав их следующим образом: · перенести последнюю букву...

Перенести первые буквы слова в конец - C++
Задача: Дано слово, перенести первые k его букв в конец.(использовать оператор цикла) Вот что-то написал, но работает не правильно в...


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

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

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