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

Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова - C++

Восстановить пароль Регистрация
 
nerusru
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 1
16.10.2016, 10:13     Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова #1
Помогите написать программу
Условие: Преобразовать исходную строку, приводя все слова к заданной длине следующим образом: если длина слова меньше заданной, дополнить его последней буквой, а если больше - обрезать.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2016, 10:13     Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова
Посмотрите здесь:

C++ Считать 2 слова из файла через пробел и сравнить их со словом No или Yes
C++ Строки (вывести все слова, содержащие только латинские буквы)
C++ Поменять все буквы а на a (русские на латинские) и к на k
C++ Дана строка. Заменить в ней все строчные (латинские и русские) буквы соответствующими заглавными.
C++ Найти в тексте слова, в которых присутствуют только заглавные латинские буквы
Найти все слова, содержащие латинские буквы (a, e, i, o, u) C++
C++ Во введенной строке заменить все гласные латинские буквы на русские соответственно
C++ Заменить в файле все большие латинские буквы на маленькие русские

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader0x7F
Helper C/C++
 Аватар для Invader0x7F
264 / 141 / 56
Регистрация: 22.09.2016
Сообщений: 478
Завершенные тесты: 4
16.10.2016, 11:24     Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова #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
#include <iostream>
 
using namespace std;
 
int main()
{
    int len = 5;
    char str[256] = "one two three foourr five six seven eight nine tennnnnnn\0";
 
    std::cout << "input = " << str << endl;
 
    for (int index = 0; str[index] != '\0'; index++)
        if (str[index] == ' ' || index == strlen(str) - 1)
        {
            int nindex = index != strlen(str) - 1 ? index - 1 : index;
            while (str[nindex] != ' ' && nindex >= 0)
                nindex--;
 
            int wlen = std::abs(index - (index != strlen(str) - 1 ? nindex + 1 : nindex));
            int diff = std::abs(wlen - len); int n_pos = diff + 1;
            while (wlen < len && --diff >= 0)
            {
                int rindex = strlen(str) - 1;
                while (rindex >= index - 1)
                    str[rindex + 1] = str[rindex--];
            }
 
            index += (wlen < len) ? n_pos : 0;
 
            while (wlen > len && --diff >= 0)
            {
                int rindex = std::abs(index - n_pos) + 1;
                while (str[rindex] != '\0')
                    str[rindex++] = str[rindex + 1];
            }
        }
 
    std::cout << "output = " << str << endl;
 
    std::cin.get();
    std::cin.get();
}
Миниатюры
Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова  
Yandex
Объявления
16.10.2016, 11:24     Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между слова
Ответ Создать тему
Опции темы

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