Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.07.2015, 11:29   #1
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
Печаль отсечение все символов по условию

Здравствуйте господа Гуру С++
Вопрос по древней C++ Builder 6 от 2002 года. Более продвинутых просьба не беспокоить.
--------------
Имеется строка "Да здравствует великий Ленин"
Нужно убрать с неё все символы у которых код (меньшие и.т.п) чем р

результат " ст у т "


Вариант не прокатывает
Код:
  char invalue[32];
  char outvalue[32];
  memset(outvalue, 0, 32);
  strncpy(invalue, "Да здравствует великий Ленин", 32);

 for(int i=0; i<32; i++)
  if ((int)invalue[i] > (int)'р')
  {
     outvalue[i] = invalue[i];
  }
по сути вопрос звучит так
Как сравнить букву внутри текста с другой буквой ! (1 байт)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума
Старый 25.07.2015, 11:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вариант не прокатывает
Код:
 for(int i=0,j=0; i<32; i++)
  if (invalue[i] < 'р')
  {
     outvalue[j++] = invalue[i];
  }; outvalue[j++] =0;
I'm learning to live...
Stilet вне форума
Старый 25.07.2015, 12:45   #3
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Спасибо что отозвались, но какого то бицепса
Код:
  if (invalue[i] < 'р')
не срабатывало
переписал вот так
Код:
  if ((byte)invalue[i] < (byte)'р')
заработало.

-------------
по сути, мне нужно было написать VCL функцию Trim для С++
то есть отбросить всё что с кодом <33 перед и после текста

тема себя исчерпала благодаря ответу Stilet . просьба по возможности её закрыть
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 25.07.2015 в 12:47.
JUDAS вне форума
Старый 25.07.2015, 13:01   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не срабатывало
Особенности билдера наверно... В Си в той же Студии или кодоблоке я так писал, все было нормально.
Цитата:
то есть отбросить всё что с кодом <33 перед и после текста
Перезаписывать символы в таком случае нет необходимости. Просто 0х0 поставить в нужном месте.
Ладно. Не важно...
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В последовательности символов выделить все русские буквы (Delphi) klik09 Помощь студентам 1 30.11.2012 06:14
Найти все тройки натуральных чисел удовлетворяющих условию ayPinki Паскаль, Turbo Pascal, PascalABC.NET 4 30.10.2011 17:33
Перебрать все значения столбца по условию. Aleksandr Общие вопросы Delphi 5 23.06.2011 11:39
Не выводит все совпадения символов. gs.Soroka Помощь студентам 0 06.04.2011 17:12
выделить все строки цветом по заданому условию mars56 Microsoft Office Excel 2 15.02.2010 07:55