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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка строк, вводим с клавиатуры, выводим обработаную 
V
    Опции темы
Staxxx
Дата 2.1.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



суть моеи работы очень проста. нужно ввести строку из букв, цифр, пунктуации..
условия:
1)строка меньше 10-ти символов
2) маленькие буквы и пунктуацию удалить
3) цифры окружить пробелами. 
первые 2 пункта сделаны. осталось выполнить пункт номер три.

нужно создать цикл, который будет прорабатывать данную строку и выполнять это действие.
Код

#include <string> 
#include <iostream>
using namespace std ;
int main ( ) 
{
    char tmp [80] ;
    do 
    {
        cout << "Vvedite stroku tmp" << endl ;
        cin.getline (tmp,80) ;
        if (!strcmp (tmp,"")) 
            break ;  

    char *px ;
        px = new char [strlen (tmp) +1] ;
        strcpy_s (px,strlen (tmp) +1, tmp) ;
        cout << "Blok raven ->" ;
        char *py, *pz ;
        py = px ;
        pz = py ;
            if (strlen (px)< 10) // строка меньше 10 символов
        {    
                while (*py)
            {
                    if (ispunct(*py) || islower(*py)) // удаляем пунктуацию и маленькие буковки
                    {
                    for ( pz=py ; *pz ;pz++)
                    *pz = *(pz + 1);
                    }
                    else
                    py++ ;
            }
            else cout << "Men'she 10 simvolov"<< endl;
            }            
            cout << px << endl;
            delete px ;
    }    
                    while (1); 
                 return (0);    
}


вот мои небольшие наработки :
Код

py=px; 
            while (*py)
            {
                if (isdigit (*py)) // цикл окружающий цифры пробелами (работает с ошибкой) 
                {
                    for (pz=py+strlen(py) ;pz!=py ; pz--)// смотрим из конца строки
                        *(pz+2)=*pz;
                    *(pz+1)=' ';
                    *(pz+1)=' ';
                    py=py+2;
                }
                py=py+1;
            }


Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  dddaa222.JPG 12,07 Kb
PM MAIL   Вверх
Staxxx
Дата 3.1.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


Бывалый
*


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

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



Код

int main ()
{
    char tmp [80];

    cout << "Vvedite stroku tmp" << endl ;
    cin.getline (tmp,80);

    char *ptr = tmp;

    if (strlen(ptr) < 10) {
        while (*ptr) {
            if (ispunct(*ptr) || islower(*ptr)) {
                for (char *p=ptr; *p; ++p)
                    *p = *(p + 1);
            }
            else
                ++ptr;
        }


        for(int i = 0; tmp[i]; ++i)
            if(isdigit(tmp[i])) {
                char digit = tmp[i];
                tmp[i] = ' ';

                int len = strlen(tmp);
                for (int j=len+1; j != i; --j)
                    tmp[j] = tmp[j-2];

                tmp[len+2] = '\0';
                tmp[i+1] = digit;
                tmp[i+2] = ' ';
                i += 2;
            }

        cout << tmp;
    }
    else cout << "Men'she 10 simvolov"<< endl;

    return 0;
}

PM MAIL   Вверх
Staxxx
Дата 3.1.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я тебя люблю))))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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