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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалить символ из строки 
:(
    Опции темы
Dende-Soft
Дата 22.2.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Такая задача. Будьте добры, помогите решить, так как завтра на дежурство... Голова не варит....

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

Заранее благодарю...
PM MAIL WWW ICQ   Вверх
Anikmar
Дата 22.2.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Dende-Soft @  22.2.2009,  22:32 Найти цитируемый пост)
помогите решить

Помочь? Или решить?

Что у вас там есть - код в студию.
PM MAIL ICQ   Вверх
andrew_121
Дата 22.2.2009, 22:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Dende-Soft, Вот для С:
Код

char* remove_char(char* result, const char* str, char ch) {
    char* ptr = result;
    
    while (*str++ != 0) {
        if ( *str == ch ) continue;
        *ptr++ = *str;
    }
    
    return result;
}

#define STRING "bla bla-bla"

int main(int argc, char** argv) {

    char result[sizeof(STRING)] = {0};
    char* p = remove_char(result, STRING, 'a');
    
    printf("%s\n", p);
    
    return 0;
}


Для С++
Код

#include <algorithm>
#include <string>

std::string remove_char(std::string str, std::string::value_type ch) {
    str.assign(str.begin(), std::remove(str.begin(), str.end(), ch));
    return str;
}

int main(int argc, char** argv) {

    std::string str = "bla bla-bla";
    std::string result = remove_char(str, 'a');
    
    printf("%s\n", result.c_str());
    
    return 0;
}


Это сообщение отредактировал(а) andrew_121 - 23.2.2009, 02:34


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mes
Дата 23.2.2009, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(andrew_121 @  22.2.2009,  21:43 Найти цитируемый пост)
Вот для С:

возвращаем указатель на внутренний буффер ?...  smile 
нда..  smile 
Цитата(andrew_121 @  22.2.2009,  21:43 Найти цитируемый пост)
Для С++

a стоило ли оборачивать содержимое в функцию ?  smile 

Это сообщение отредактировал(а) mes - 23.2.2009, 01:28


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 23.2.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Цитата(mes @  23.2.2009,  01:25 Найти цитируемый пост)
возвращаем указатель на внутренний буффер ?...

А нечего что он static?!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mes
Дата 23.2.2009, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(andrew_121 @  23.2.2009,  00:48 Найти цитируемый пост)
А нечего что он static?! 

a ничего если эту функцию вызовут дважды ? не говоря об ограничении на размер 
или необходимо помнить , что полученную строку надо скопировать ?!  smile 


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 23.2.2009, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



mes, Функция делает то что должна. Остальное автор темы может поправить...я так думаю...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mes
Дата 23.2.2009, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(andrew_121 @  23.2.2009,  01:23 Найти цитируемый пост)
mes, Функция делает то что должна. Остальное автор темы может поправить...я так думаю... 

будем надеяться.. хотя в душе кажется, что  этот способ будет взят на вооружение  smile 


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 23.2.2009, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



mes, Исправил.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Dende-Soft
Дата 23.2.2009, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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

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

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


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

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


 




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


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

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