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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2011, 23:49   #1
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию Определение подстроки от последнего минуса до конца строки

Есть строка типа 29-789+6,335-4*117-50,723
Как в Delphi определить часть строки от последнего минуса включая минус до конца строки.
В данном примере -50,723. Причём расположение последнего минуса в строке может менятся относительно конца строки. Может быть есть стандартная функция.

Последний раз редактировалось vmilyoshin; 20.02.2011 в 00:37. Причина: Не указал какой язык программирования использовать
vmilyoshin вне форума Ответить с цитированием
Старый 20.02.2011, 00:09   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
#include <iostream>
#include <string>

using namespace std;

int main() {
  string s, substr_from_last_minus;

  getline(cin, s);

  size_t position = s.find_last_of('-');

  if (position != string::npos) {
    substr_from_last_minus = s.substr(position);
    cout << substr_from_last_minus << endl;
  } else 
    cout << "Not found." << endl;
}
Так, например.
netrino вне форума Ответить с цитированием
Старый 20.02.2011, 00:17   #3
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Код:
#include <iostream>
#include <string>

using namespace std;

int main() {
  string s, substr_from_last_minus;

  getline(cin, s);

  size_t position = s.find_last_of('-');

  if (position != string::npos) {
    substr_from_last_minus = s.substr(position);
    cout << substr_from_last_minus << endl;
  } else 
    cout << "Not found." << endl;
}
Так, например.
Может быть и так, но мне нужно в Delphi.
vmilyoshin вне форума Ответить с цитированием
Старый 20.02.2011, 00:53   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ну так с этого, наверное, и следовало начинать?
Код:
var
  Str, SubStr: String;
  Position, I: Byte;
 
begin
  ReadLn(Str);
  Position := 0;
 
  for I := Length(Str) downto 1 do
    if Str[I] = '-' then
      begin
        Position := I;
        break;
      end;
 
  if Position <> 0 then
    begin
      SubStr := Copy(Str, Position, Length(Str));
      WriteLn(SubStr);
    end;
end.
netrino вне форума Ответить с цитированием
Старый 20.02.2011, 02:59   #5
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Ну так с этого, наверное, и следовало начинать?
Код:
var
  Str, SubStr: String;
  Position, I: Byte;
 
begin
  ReadLn(Str);
  Position := 0;
 
  for I := Length(Str) downto 1 do
    if Str[I] = '-' then
      begin
        Position := I;
        break;
      end;
 
  if Position <> 0 then
    begin
      SubStr := Copy(Str, Position, Length(Str));
      WriteLn(SubStr);
    end;
end.
Спасибо огромное! Приспособил это к проверке текста в Edit. Всё замечательно сработало. Я думаю даже создать функцию, чтобы использовать ни только минус, а любой символ. Если не получится, то обращусь.
vmilyoshin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение конца файла с форматированием пустых ячеек 3BEPOBOY Microsoft Office Excel 5 08.02.2011 11:41
Определение последнего символа в строке vmilyoshin Помощь студентам 7 25.01.2011 17:56
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Поиск подстроки в MEMO(определение номера) DarkMan-4ever Помощь студентам 4 20.12.2009 17:10