Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйста!!! Очень нужно вопрос жизни и смерти! 
:(
    Опции темы
dexterdc
  Дата 5.4.2005, 03:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет друзья!!! Ребята, прошу вас помогите мне пожалуйста, бедному студенту, написать программу на С++ Вопрос жизни и смерти, я б сам написал, но не силен пока в этом, учусь, пробую а у меня ничего не получается, а сроки поджимают, да и преподы злые smile smile smile(
Вот такое условие:
В заданном тексте удалить все символы, не являющиеся буквами или цифрами и заменить все большие буквы одноименными малыми.
Помогите пожалуйста. отблагодарю всем, чем смогу.
Заранее ОГРОМНЕЙШЕЕ СПАСИБО!!!!
С уважением dexterdc!

----------------------------
Извиняюсь, может я немного не там разместил тему, прогу нужно написать на Visual C++ 6.0

Это сообщение отредактировал(а) dexterdc - 5.4.2005, 04:05
  Вверх
azesmcar
Дата 5.4.2005, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Код

char * remove_symbol( char *p, int spos )
{
    const int len = strlen( p );
    for ( int i = spos; i < len - 1; ++i )
    {
        p[ i ] = p[ i + 1 ];
    }
    p[ len - 1 ] = '\0';
    return p;
}

int find_symbol( char *p )
{
    const int len = strlen( p );
    for ( int i = 0; i < len; ++i )
    {
        if ( (p[ i ] < 'a' || p[ i ] > 'z') && (p[ i ] < '0' || p[ i ] > '9') )
        {
            return i;
        }
    }
    return -1;
}

void main()
{
    char *p = new char[100];
    memcpy( p, "@#12345ABCD#$%^", 16 );
    p = strlwr(p);
    int f = find_symbol(p);
    while ( f != -1 )
    {
        remove_symbol( p, f );
        f = find_symbol(p);
    }
    printf(p);
    delete [] p;
}


Примерно так экспромтом...можно конечно немного оптимизировать но для зачета вполне сойдет...
PM   Вверх
Vance
Дата 20.5.2005, 22:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











#include <stdlib.h>
#include <iostream.h>
#include <string.h>

int find_symbol(char *p); // обьявление ф-ий
char * remove_symbol( char *p, int spos ); // ~

int main(void)
{
int len = 100; /// max длинна вводимой строки
char * in = new char[len];

cout << "Input string please..." << '\n';
cin >> in; /// ввод строки пользователем

in = strlwr(in); /// перевод строки в нижний регистр

int sn = find_symbol(in); /// первый вызов ф-ии поиска позиции плохого символа
while ( sn != -1 )
{
in = remove_symbol(in,sn); /// циклически удаляем из строки плохие символы
sn = find_symbol(in); /// опять находим позицию след. плохого и в след. цикле опять его косим и так пока не очистин строку
}

cout << in << '\n'; /// вывод очищенной строки на экран
cout << "Input symbol to go out..." << '\n';
cin >> in;
return 0; /// выход из программы
}


int find_symbol(char *p) // ФУНКЦИЯ ПОИСКА НЕПРАВИЛЬНОГО СИМВОЛА возвращает позицию символа в строке
{
const int ln = strlen(p); // вычисление длины строки для цикла
for (int i = 0; i < ln; ++i ) /// посимвольный цикл прохода по строке
{
if ( (p[i] < 'a' || p[i] > 'z') && (p[i] < '0' || p[i] > '9') ) // поиск неправильных символов
{
return i; // выход из ф-ии и возвращение позиции плохого символа
}
}
return -1;
}

char * remove_symbol(char *p, int spos) // ФУНКЦИЯ УДАЛЕНИЯ НЕПРАВИЛЬНОГО СИМВОЛА по указанной позиции (а её то нашла уже ф-я find_symbol)
{
const int ln = strlen(p); ///вычисление длины строки для цикла
for (int i = spos; i < ln-1; ++i) /// цикл удаления одного символа - все что следуют за ним теперь передвигаются на предидущее место
{
p[i] = p[i+1];
}
p[ln-1] = '\0'; // последний символ в строке будет символом окончания строки
return p; // выходим из ф-ии и возвращаем строку с удаленным символом
}

  Вверх
Vance
Дата 20.5.2005, 22:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Потерял твоё мыло - так что кинул сюда
Копировал из файла - форматирование потерялось, но прога рабочая -
проверял.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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