Строковый тип данных

1) Вводятся 2 строки. Дописать в конец первой большие латинские буквы из второй. 2) Вводится строка. Проверить, что она состоит только из цифр и если да, то трактуя ее как число, прибавить к этому числу единицу.
7 ответов

1) Решение мне писать влом, так что могу только подсказать, что все большие латинские буквы возвращают функцией Ord(X: char) число от 65 до 90 включительно Хотя проще проверять if Str[i] in 'A'..'Z' then... 2) Насколько большая строка?


до 100 символов


Может это неправильно, но 2 задачу можно решить так: 1)Если строка Str состоит только из цифр то она переведется функцией StrToInt без ошибок: try Int:=StrToInt(Str); except //выход из проги если строка не только из цифр application.terminate; end; Int:=Int+1;


Froost а вам трудно указать на чём всё это надо сделать (паскаль, делфи, си....)???


Раз уж автор язык не указал рискну предложить:
MODULE q;
IMPORT StdLog,In;
 
 PROCEDURE w*;
 VAR
 a,s:ARRAY(20) OF CHAR;
 e,i:INTEGER;
 BEGIN
 StdLog.Clear;
 In.Open;
 In.String(a);
 In.String(s);
 StdLog.String(a);
 FOR i:=0 TO LEN(s)-1 DO
 IF (s[i]>'A') & (s[i]<'Z') THEN
 StdLog.Char(s[i]);
 END;
 END;
 END w;
END q.


delphi 6


вторая задача. на Pascal. под Дельфи переделайте самостоятельно!
var s : string;
 i, Perenos : integer;
 isNoDigit : boolean; 
begin
 WriteLn('Введите исходную строчку: ');
 Readln(s);

 isNoDigit := false;
 for i:=1 to Length(s) do
 if Not (s[i] in ['0'..'9']) then begin
 isNoDigit := true;
 break
 end;

 if isNoDigit then WriteLn('Строка содержит нецифровые символы!')
 else begin
 {собственно процесс наращивания строки на единичку}
 Perenos := 1;
 i:= Length(s);
 while (i>=1) and (Perenos>0) do begin
 s[i] := chr(ord(s[i])+Perenos);
 if s[i]>'9' then begin
 Perenos := ord(s[i])-ord('9');
 s[i] := '0'
 end
 else Perenos := 0;
 Dec(i);
 end;

 if (i=0) and (Perenos>0) then s := chr(ord('0')+Perenos) + s;

 WriteLn(s);
 end;
end.