字符相加

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:22:08
program biology;
var
i,j:integer; ch:string;
a,b:array[1..4] of char;
c:array[1..4,1..4] of char;
begin
read(ch);
for i:=1 to 4 do a[i]:=copy(ch,i,1);
b[1]:=a[1]+a[3];
b[2]:=a[1]+a[4];
b[3]:=a[2]+a[3];
b[4]:=a[2]+a[4];
for i:=1 to 4 do
for j:=1 to 4 do
c[i,j]:=b[i]+b[j];
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
write(c[i,j]);
end;
writeln;
end;
end}
begin
ch:='a'+'b';
write(ch);
end.
高手帮我看一下,为什么字符相加会出现类型不匹配的错误呢?
我应该怎么将字符读入数组中然后进行相加?

a[i]:=copy(ch,i,1);
copy(ch,i,1)是一个字符串,a[i]是一个字符,即使字符串只有一个字符,但在计算机贮存时有一个字符串结束标志,所以不能赋给字符。

program p4;

{$APPTYPE CONSOLE}

uses
SysUtils;

var

i,j:integer; ch:string;
a:array[1..4] of char;
b:array[1..4]of string;
c:array[1..4,1..4] of string;
begin
read(input,ch);
//ch:='abcd';
for i:=1 to 4 do a[i]:=ch[i];
b[1]:=a[1]+a[3];
b[2]:=a[1]+a[4];
b[3]:=a[2]+a[3];
b[4]:=a[2]+a[4];
for i:=1 to 4 do
for j:=1 to 4 do
c[i,j]:=b[i]+b[j];
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
write(c[i,j]);
end;
writeln;
end;

end.