提问人:Varo 提问时间:9/12/2023 最后编辑:DharmanVaro 更新时间:9/29/2023 访问量:165
给定一个单词或一组字符,如何只取一个部分并处理其余部分
Given a word or set of characters how to only take one part and dispose the rest
问:
我使用 Free Pascal,我必须为大学课程(编程入门课程)完成任务。
我们不允许使用 Free Pascal 中的某些单词,例如 、 和其他一些单词,因此我的 for 字符是 。string
break
var
char
基本上,我需要从一个单词(或一组字符)中获取每个字母并做一些事情(在这种情况下,将 ASCII 值添加到每次添加字母时都会增加的数字中)。
当我们找到第一个点 () 时,我无法停止循环。理想情况下,如果用户输入,我只需要完成字母、和(第一个字母之前的字母)的工作,并“在”之后“处理文本的其余部分,因为不会使用while
.
house.dog.
while
h
o
u
s
e
.
.
我已经读到和 之间存在一些内部差异,但无法弄清楚这是否会影响代码和我得到的错误Read
ReadLn
我在下面尝试了这段代码,并且在输入单词后不要停止。继续让我添加单词,直到出现运行时错误
program testingw;
var
myText : char;
myResult : Integer;
begin
writeLn ('enter your text');
readLn (myText);
while myText <> '.' do
begin
Read(myText);
if myText <> '.' then
begin
myResult := myResult * 125 + ord(myText);
WriteLn (myText);
end;
end; { while }
end.
答:
1赞
Tom Brunberg
9/12/2023
#1
首先对变量命名的评论:一个名为 var 的 var 给了我至少几个句子的文本的心理图景。似乎不适合只适合一个角色。 对于一个角色来说,这是合乎逻辑的选择。myText
myChar
取代
writeLn ('enter your text');
readLn (myText);
跟
writeLn ('enter your text');
read(myText); // execution remains here until [Enter],
// entered chars are stored in input buffer
// myText refers to first char in buffer
和while
while myText <> '.' do
begin
myResult := myResult * 125 + ord(myText);
write(myText);
read(myText); // Fetch next char in buffer
end;
但请注意,这是使用 Delphi 测试的。我目前无法与 FP 验证。
评论
0赞
Scooter
10/12/2023
它适用于 Free Pascal,但原始代码的 Read/Readln 语句不正确。第一个字符将与呈现的逻辑一起删除。必须初始化一个 Read() 或 myText,并将第二个 Read 移动到循环的底部。
评论
integer