如何从Pascal中的同一行读取两个字符串?

时间:2012-04-05 22:20:40

标签: string line pascal

我正在尝试从pascal的同一行读取两个字符串变量 这两个字符串由空格分隔。

我试过把它读成一个字符串,然后将它分成两部分,但后来我遇到了问题,因为字符串大于255个字符。

这是我想读的字符串:

  

kyGOwpLobZvGynmdpiujxhUwphFsTTipuyAwpeffcckLuPouxmpQwGeMxqDoIqeWVkpdLueirlLiabfhxjnwbyMDYUfhGmlnFJdmfhtxljPqicbotSBvkKaQdsmbyrhmmSdexHjwdnecjRtzef mkhRyGOwpLobZvGynmdpiujxhUwphFsTTipuyAwpeffcckLumWbnbfdhlzFmnkkrwNsewPouxmpQwGeMxqDoIqeWVkpdLueirlLiabfhxjnwbyMDYUfhGmlnFJdmfhtxljPqicbotSBvkKaQdsmbyrhmmSdexHjwdnecjRtzeajfz`

该行的长度并不总是相同,并且空白空间不在同一位置。

我试图找出是否通过删除第二个字符串中的某些字符来获得第一个字符。

示例:STRING aSgasTsaRoIgfNfdsG
应该得到肯定的答案。

以下是检查该内容的代码。

q:=1;  
for m:=1 to length(b) do  
begin  
if b[m] = a[q] then  
q:=q+1;
end;

q:=q-1;

writeln(q);

if q = length(a) then  
writeln('YES')  
else  
writeln('NO');

其中a是第一个字符串,b是第二个字符串。

我正在将第一个大字符串作为一个变量读取,然后将其分为两部分 当第一个字符串大于255个字符时,会出现此问题。这就是为什么我想知道如何从同一行读取两个字符串。

我用来分隔字符串的代码:

readln(x);  

x:=LONGSTRINGHERE;  
blank:=' ';
Location := Pos(blank, x);  

a:=Copy(x, 1, (Location-1));  

b:=Copy(x, (Location+1), length(x)); 

2 个答案:

答案 0 :(得分:1)

不是使用readln()来读取整行,也许你可以使用read()char类型的变量来一次读取一个字符到第一个字符串,直到你检测到空格然后读取第二个字符串。

答案 1 :(得分:0)

你可以使用freepascal编译器并用ansistring替换字符串,最多可以是2 ^ 16 = 65536个字符。