Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите решить задачку!! ну очень надо 
:(
    Опции темы
mkuint
Дата 6.5.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2005

Репутация: нет
Всего: нет



Ввести слово. По меню записать его большими буквами, строчными буквами или записать его в обратном порядке.

Желательно на turboC сразу smile
PM MAIL   Вверх
chaos
Дата 6.5.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



вот тебе пища для размышления
Код

#include <stdio.h>
#include <string.h>

////////////////////////////
//revers )))
char* revers(int size, const char* str)
{
    int i;
    char ch, *revstr = new char[size+1];
    memset(revstr,0,size+1);
    strncpy(revstr, str, size);
    for (i=0; i<int(size/2); i++)
    {
        ch = revstr[i];
        revstr[i] = revstr[size-i-1];
        revstr[size-i-1]=ch;
    }
    
    return revstr;
}


int main()
{

    char str[80];
    gets(str);

    //переворачиваем строку
    char *revstr = revers(strlen(str), str);
    printf("%s\n", revstr);

    //строчные 
    strlwr(str);
    printf("%s\n", str);

    //большими
    strupr(str);
    printf("%s\n", str);
    
    return 0;

}


PM WWW   Вверх
mkuint
Дата 10.5.2005, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2005

Репутация: нет
Всего: нет



БОЛЬШОЕ человеческое спасибо!!!!!! ))))
PM MAIL   Вверх
rsm
Дата 10.5.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 2
Всего: 62



Или можно еще проще smile
Код

#include <stdio.h>    
#include <string.h>    

void main()    
{    
    char str[80];
    
     gets(str);    
    printf("%s\n", strrev(str)); // переворачиваем строку
    printf("%s\n", strlwr(str)); // строчные    
    printf("%s\n", strupr(str)); // большими
}

PM MAIL   Вверх
mkuint
Дата 11.5.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2005

Репутация: нет
Всего: нет



А ещё если не сложно, как нраписать, чтоб если нажимаю "1", то переварачиваеться строка, "2"- ПРОПИСНЫЕ БУКВЫ ВЫВОДЯТЬСЯ и т.д.
PM MAIL   Вверх
rsm
Дата 11.5.2005, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 2
Всего: 62



Код

#include <stdio.h>     
#include <string.h> 

void main()     
{    
    char str[80];    
     
    gets(str);

    printf("Чего изволите?\n"
           "Жми '1' чтобы перевернуть строку\n"
           "Жми '2' чтобы перевести строку в нижний регистр\n"
           "Жми '3' чтобы перевести строку в верхний регистр\n");

    char key;    
    key = getchar();
    
    switch(key)
    {
        case '1': 
            printf("%s\n", strrev(str)); // переворачиваем строку    
            break;
        case '2':
            printf("%s\n", strlwr(str)); // строчные     
            break;
        case '3':
            printf("%s\n", strupr(str)); // большими    
            break;
        default:
            printf("Вай-вай, зачэм 'any key' нажал, да?!");
    }

}


Это сообщение отредактировал(а) rsm - 11.5.2005, 18:33
PM MAIL   Вверх
mkuint
  Дата 13.5.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 28.4.2005

Репутация: нет
Всего: нет



char* revers(int size, const char* str)
{

int i;
char ch, *revstr = new char[size+1];
//memset(revstr,0,size+1);
//strncpy(revstr, str, size);
for (i=0; i<int(size/2); i++)
{
ch = revstr[i];
revstr[i] = revstr[size-i-1];
revstr[size-i-1]=ch;
}

return revstr;

}
void perstr()
{
char str[80];
//perevora4ivaem stroky
char *revstr = revers(strlen(str), str);
printf("Perevora4ivaem stroky : %s\n", revstr);
}

void strochstr()
{
char str[80];

//stro4nble
strlwr(str);
printf("Stro4nble bykvbl : %s\n", str);
}


void zagstr()
{
char str[80];
//zaglavnble
strupr(str);
printf("Zaglavnble bykvbl : %s\n", str);
}

int main()
{

do
{
clrscr();
printf("0-Enter string\n1-perevernyt' stroky\n2-propisnble\n3-zaglavnble\n4-Vblvod string\nEscape-Quit\n\n\n");
char str[80];


switch(getch())
{case'0': printf("Enter string:");
gets(str); break;
case '1': perstr();break;
case '2': strochstr();break;
case '3': zagstr();break;
case'4':cout<<str; break;
case 27: exit(0);
} getch();
}
while(1);

}



Всё работает, а почемуто выводится какая белибирда!!!!!! В чём проблема smile
PM MAIL   Вверх
rsm
Дата 13.5.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 2
Всего: 62



Цитата
В чём проблема

Проблема в том что функции str* модифицируют строку. Напиши примерно вот так:
Код

#include <stdio.h>     
#include <string.h> 
#include <conio.h>

void clrscr()
{
    // это для Винды, в ней нет готовой функции clrscr()
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
}

void main()     
{    
    char str[80], buff[80];
    char key;
     
    while(1)
    {
        printf("What do u want to do?\n\n"
               "0 - Enter string\n"
               "1 - Reverse string\n"
               "2 - Lower case string\n"
               "3 - Upper case string\n"
               "9 - Close program\n\n"
               "I choose: ");
        key = getch();
        clrscr();
        strcpy(buff, str);
        switch(key)
        {
            case '0':
                printf("\n\nEnter string: ");
                memset((void*)&str, 0, sizeof(str)-1);
                gets(str);
                clrscr();
                continue;
            case '1':
                printf("\n\nResult: %s", strrev(buff));
                break;
            case '2':
                printf("\n\nResult: %s", strlwr(buff));
                break;
            case '3':
                printf("\n\nResult: %s", strupr(buff));
                break;
            case '9':
                return;
        }
        getch();
        clrscr();
    }
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.