В файле, содержащем строки, содержатся русские имена. Проверить, все ли они начинаются с прописной буквы, если нет, то исправить эту ошибку. Записать полученные данные в новый файл.
трудность в том, что не знаю , как проверить и исправить ошибку. предполагается, что имена разделяются в строке пробелом.
18192123
11.01.2007 3:34
может как то использовать такое выражение
upcase(s[i]) in ['A'..'Z']
?
Sundery
11.01.2007 3:55
var a:array [1..10] ofstring;
i,tmp:integer;
begin
s[1]:='afas';
s[2]:='Ccvn';
s[3]:='jfg';
s[4]:='Hdfjags';
s[5]:='tujdm';
--------------------------
for i:=1to5dobegin
tmp:=ord(s[i,1]);
if tmp in [97..122] thenbegin
s[i,1]:=chr(tmp-32);
end;
writeln(s[i]);
end;
--------------------------
end.
вроде бы то, что тебе надо
volvo
11.01.2007 4:31
Цитата
вроде бы то, что тебе надо
С какой стати? Задание читаем ВНИМАТЕЛЬНО!
Цитата
В файле, содержащем строки, содержатся русские имена.
А ты что предлагаешь?
18192123, ты, наконец, FAQ начнешь читать, или будешь постить бесконечно непонятно откуда взявшиеся задания? Сколько можно уже? Практически одно и то же везде
Здесь: Строки я выкладывал функцию StrUpper, которая корректно переводит любую строку в верхний регистр... Переделай ее для работы с одним символом и используй, ибо стандартный UpCase с кириллицей НЕ работает...
Sundery
11.01.2007 4:47
Цитата(volvo @ 11.01.2007 1:31)
С какой стати? Задание читаем ВНИМАТЕЛЬНО!
А ты что предлагаешь?
18192123, ты, наконец, FAQ начнешь читать, или будешь постить бесконечно непонятно откуда взявшиеся задания? Сколько можно уже? Практически одно и то же везде
Здесь: Строки я выкладывал функцию StrUpper, которая корректно переводит любую строку в верхний регистр... Переделай ее для работы с одним символом и используй, ибо стандартный UpCase с кириллицей НЕ работает...
читаю оочень внимательно! во втором сообщении автор написал [A..Z], а на каком языке не указано (сказано лишь что имена русские), поэтому я предположил что на транслите.
еще не известно какая кодировка. если досовкая, то вот так:
assign(f,'123.txt');
reset(f);
i:=1;
whilenot eof(f) dobegin
readln(f,s[i]);
tmp:=ord(s[i,1]);
if tmp in [160..175] then s[i,1]:=chr(tmp-32)
elseif tmp in [224..239] then s[i,1]:=chr(tmp-80);
writeln(s[i]);
i:=i+1;
end;
а если нет, то тогда только по предложенной функции.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.