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

Строка: Написать программу, которая циклически выводит ФИО со смещением на один символ - C++

Восстановить пароль Регистрация
 
fantazer333
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 47
16.04.2012, 23:33     Строка: Написать программу, которая циклически выводит ФИО со смещением на один символ #1
Написать программу. Пользователь вводит строчку. Программы циклически выводит на экран со смещением на 1 символ эту строчку до тех пор, пока не будет выведена изначальная строка. Пример:
Введите строчку: КУКУШКА
КУКУШКА УКУШКАК КУШКАКУ УШКАКУК ШКАКУКУ КАКУКУШ АКУКУШК КУКШКА

Когда-то помогли сделать вот такой код

Написать программу, которая циклически выводит ФИО со смещением на один символ (бегущая строка):

Привет
тПриве
етПрив

С использование linked list.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
typedef struct lstTag
{
    char    data;
    lstTag* next;
} lst;
 
void push(char data, lst** begin, int* size)
{
    int i;
    if(*begin)
    {
        lst* ptr=(lst*)malloc(sizeof(lst));
        lst* temp=*begin;
        for(i=0; i<*size-1; ++i)
            temp=temp->next;
        ptr->data=data;
        ptr->next=*begin;
        temp->next=ptr;
    }
    else
    {
        *begin=(lst*)malloc(sizeof(lst));
        (*begin)->data=data;
        (*begin)->next=*begin;
    }
    (*size)++;
}
 
void clear(lst* begin, int* size)
{
    lst* temp;
    while((*size)--)
    {
        temp=begin;
        begin=begin->next;
        free(temp);
    }
}
 
void printlst(lst* begin, int count, int offset)
{
    int i;
    for(i=0; i<offset; ++i)
        begin=begin->next;
    for(i=0; i<count; ++i)
    {
        printf("%c", begin->data);
        begin=begin->next;
    }
}
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
    lst* beg=NULL;
    int size=0, i;
    char* str="Привет";
    while(*str)
        push(*str++, &beg, &size);
    for(i=0; i<size; ++i)
    {
        printlst(beg, size, size-i);
        printf("\n");
    }
    clear(beg, &size);
    system("pause");
    return 0;
}
Как теперь переделать или вообще сделать проще код, как можно меньше строчек и не обязательно ерез linkedlist
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 23:33     Строка: Написать программу, которая циклически выводит ФИО со смещением на один символ
Посмотрите здесь:

C++ Напишите программу, которая выводит на экран все слова, которые имеют определенный символ в определенной позиции
Написать программу, которая выводит пример на вычитание, запрашивает ответ пользователя, проверяет его и выводит сообщение о правильности C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя C++
C++ Написать программу которая выводит график
Написать программу, которая предлагает пользователю ввести пятизначное число и циклически сдвигает его влево и выводит результат в консоль. Наприме C++
C++ Написать функцию, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами процедуры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
17.04.2012, 10:47     Строка: Написать программу, которая циклически выводит ФИО со смещением на один символ #2
C++
1
2
3
4
5
6
7
8
9
    static char word[256] = "KUKUSKA";
    static char target[256] = "\0";
    do {
        if (!strcmp(target,"")) strcpy(target,word);
        char ch = target[0]; int n = 1; printf("%s\n",target);
        while (target[n] != '\0' && n < strlen(target))
            target[n-1] = target[n++];
        target[n-1] = ch;
    } while (strcmp(word,target) != 0);
Yandex
Объявления
17.04.2012, 10:47     Строка: Написать программу, которая циклически выводит ФИО со смещением на один символ
Ответ Создать тему
Опции темы

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