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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2012, 20:37   #1
vampir3001
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 23
По умолчанию Вывести на экран все знаки пунктуации.

Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран все знаки пунктуации.
vampir3001 вне форума Ответить с цитированием
Старый 28.02.2012, 23:14   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,318
По умолчанию

Думаю, что можно так:
Обрабатываем строку посимвольно с преобразованием в верхний регистр.
Если символ не принадлежит символам [0 .. 9] и [A .. Z], то это знак пунктуации.

Так думаю, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 29.02.2012, 02:14   #3
vampir3001
Пользователь
 
Регистрация: 24.10.2011
Сообщений: 23
По умолчанию

ну и как это будет выглядеть?
vampir3001 вне форума Ответить с цитированием
Старый 29.02.2012, 12:28   #4
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от vampir3001 Посмотреть сообщение
ну и как это будет выглядеть?
Код:

type
Tstroc=record
   name:string;
   Value:char;
end;
var
ch:array of Tstroc;
chCount:integer;

Function AddCh(Name:string;Value:Char):integer;
begin
 chCount:=chCount+1;
 setlength(ch,chCount);
 ch[chCount-1].name:=name;
 ch[chCount-1].value:=value;
end;
Procedure Init;
begin
AddCh('апостроф','’');
AddCh('скобки','[');
AddCh('скобки',']');
AddCh('скобки','(');
AddCh('скобки',')');
AddCh('скобки','{');
AddCh('скобки','}');
AddCh('двоеточие',':');
AddCh('запятая',',');
AddCh('тире','–');
AddCh('тире','—');
AddCh('многоточие','…');
AddCh('восклицательный знак','!');
AddCh('точка','.');
AddCh('дефис','-');
AddCh('кавычки','‘');

AddCh('кавычки','’');
AddCh('кавычки','“');
AddCh('кавычки','”');
AddCh('кавычки','«');
AddCh('кавычки','»');
AddCh('кавычки',#39);
AddCh('точка с запятой',';');
AddCh('косая черта','/');
AddCh('косая черта 	','/');
//Словоразделители
AddCh('пробел',#32);
AddCh('интерпункт','·');
//Основная типографика

AddCh('амперсанд','&');
AddCh('коммерческое at','@');
AddCh('звёздочка','*');
AddCh('обратная косая черта','\');
AddCh('маркер списка','•');
AddCh('циркумфлекс','^');
AddCh('знак охраны авторского права','©');
AddCh('знак валюты','¤');
AddCh('крестик','†');
AddCh('крестик','‡');
AddCh('градус','°');
AddCh('октоторп/решётка/хеш','#');
AddCh('знак номера','№');
AddCh('процент','%');
AddCh('процент','‰');
AddCh('абзац','¶');
AddCh('знак правовой охраны товарного знака','®');
AddCh('знак параграфа','§');
AddCh('тильда','~');
AddCh('символ товарного знака','™');
AddCh('подчёркивание','_');
AddCh('вертикальная черта','|');
AddCh('вертикальная черта','¦');
end;

Function GetListFromCH:string;
var x:integer;
    s2:string;
begin
  s2:='';
  for x:=0 to chCount-1 do begin
    s2:=s2+ch[x].name+'="'+ch[x].Value+'"'+#13+#10;
  end;
  result:=s2;
end;


Function GetMassivText:string;
var x:integer;
    s2:string;
begin
  s2:='';
  for x:=0 to chCount-1 do begin
  if s2='' then
    s2:=s2+'#'+inttostr(Ord(ch[x].value))
    else s2:=s2+',#'+inttostr(Ord(ch[x].value))
  end;
  result:=s2;
end;
Код:
#146,#91,#93,#40,#41,#123,#125,#58,#44,
#150,#151,#133,#33,#46,#45,#145,#146,#147,
#148,#171,#187,#39,#59,#47,#47,#32,#183,
#38,#64,#42,#92,#149,#94,#169,#164,#134,
#135,#176,#35,#185,#37,#137,#182,#174,
#167,#126,#153,#95,#124,#166

http://ru.wikipedia.org/wiki/%C7%ED%...ED%E0%ED%E8%FF
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 29.02.2012 в 12:33.
denisbrain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, вывести на экран знаки препинания, которые встречаются хотя бы 2 раза (Паскаль) GamBitFRK Помощь студентам 0 22.12.2011 17:22
вывести на экран все числа делящиеся на 13 от1 до 100 nasya73 Паскаль, Turbo Pascal, PascalABC.NET 5 07.11.2011 01:32
Не могу вывести на экран все отредактированные строки! iron-YYY Общие вопросы C/C++ 1 29.05.2009 11:12