我必须创建一个程序,使用 pascal 中的过程将短语(带有特殊字符,例如 % 和 $)拆分为单词。
所以如果我输入:
This is a valid word: 12$%ab
该程序必须返回我:
This
is
a
valid
word:
12$#ab
没有空格,一个在另一个之下。
我不能使用数组,并且“调用”该过程的变量必须是一个字符串。
提前致谢!
这是我的代码:
program words;
uses crt;
var
phrase :string;
word:string;
letter :char;
x :integer;
begin
clrscr;
phrase:='';
word:='';
x:=1;
repeat
write('type a phrase: ');
readln(phrase);
until phrase<>'';
while x<=length(phrase) do
begin
letter:=phrase[x];
case letter of
'a'..'z','A'..'Z':
begin
word:=word+letter;
repeat
x:=x+1;
letter:=phrase[x];
word:=word+letter;
until (letter=' ') or (x=length(phrase));
writeln(word);
word:='';
end;
end;
x:=x+1;
end;
writeln;
readkey;
end.