Karakter eltolás hogyan?
#include <stdio.h>
int main() { printf("%c\n", 'a' << 1); return 0; }
Tessék, ez eltolja a karaktereket. (Lazarussal készült a program)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, lazutf8;
type
{ TForm1 }
TForm1 = class(TForm)
titok: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure titokClick(Sender: TObject);
private
{ private declarations }
function beCaesar(const s: string; eltol: byte):string;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
const
abc_kicsi: string=('aábcdeéfghijklmnoóöőpqrstuúüűvwxyz');
abc_nagy: string=('AÁBCDEÉFGHIJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ');
{ TForm1 }
procedure TForm1.titokClick(Sender: TObject);
begin
Edit2.Text:=beCaesar(Edit1.Text,2);
end;
function TForm1.beCaesar(const s: string; eltol: byte): string;
var tmp: string;
i,x: integer;
begin
tmp:='';
x:=0;
for i:=1 to UTF8Length(s) do
begin
tmp:=UTF8Copy(s,i,1);
if UTF8Pos(tmp,abc_kicsi)>0 then
begin
x:=UTF8Pos(tmp,abc_kicsi);
x:=x+eltol;
if x>UTF8Length(abc_kicsi) then x:=x-UTF8Length(abc_kicsi);
Result:=Result+UTF8Copy(abc_kicsi,x,1)
end else
if UTF8Pos(tmp,abc_nagy)>0 then
begin
x:=UTF8Pos(tmp,abc_nagy);
x:=x+eltol;
if x>UTF8Length(abc_nagy) then x:=x-UTF8Length(abc_nagy);
Result:=Result+UTF8Copy(abc_nagy,x,1)
end else Result:=Result+tmp;
end;
end;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!