|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 25 Feb 2003 21:56:30 To : Renat Araslanow Subject : Re: регистр букв -------------------------------------------------------------------------------- Здравствуй, Renat Araslanow. AC>>>> Правильный ответ: AC>>>> ==== 8< [test.pl] ==== AC>>>> #!/usr/bin/perl -w AC>>>> use strict; AC>>>> use locale; AC>>>> my $s = "Слово"; AC>>>> print "Capital" if uc substr($s,0,1) eq substr($s,0,1); S>> ==== >>> 8 [test.pl] ==== S>>> хинт ь3: если $s="", то выдаст "Capital":). Гы, странно что не substr на S>>> это дело не ругается:). Бейсик бы за такие дела очень сильно отшмонал:). AC>> А чем первая буква пустого слова не заглавная? RA> 1. не такого понятия - пустое слово. RA> 2. если даже и есть, то оно, согласно своему названию, не содержит букв. Hу да. Тебе осталось только чуть-чуть подучить логику, чтобы узнать, что на пустом множестве квантор всеобщности делает утверждение истинным. Любое. AC>> А чего сабстру на это ругаться? RA> помоему глупо: RA> програмер: выдайте часть строки длинной 1, начиная с 0 позиции из строки RA> ничего не содержащей. RA> substr: пожалуйста, без проблем. (и ехидно интерпретатору: какой вопрос - RA> такой ответ) Чего ж в этом глупого? Единственно - следует иначе интерпретировать это выражение. "выдайте часть строки длиной не более 1, начиная с 0 позиции". Ибо семантика substr именно такова. Это, естественно, упрощение - на самом деле оно куда более развесисто. AC>> Hу, пустая строка... Hа самом деле тут AC>> есть AC>> и другие засады - AC>> так, оно будет считать заглавной любую небукву (у нее uc равно ей самой). AC>> Логичнее было бы написать lc ... ne ..., но и тут могут быть грабли. Все AC>> зависит от допусков в задаче. RA> первая строчка квотинга, помоему, с этим твоим ответом не очень сопоставима. RA> помоему лучше так RA> use locale; RA> $_="Cлово"; RA> print "Cap" if m/^[[:upper:]]/; Тоже вариант. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454ca2bb37e.html, оценка из 5, голосов 10
|