

Giúp em giải bài này Nhập xâu tính tổng các số trong xâu
Vd 123v12b0=123+12+0=145
Vd 123v12b0=123+12+0=145
Var
s1,s:string;
t,i,n,code:Integer;
Begin
readln(s);
For i:=1 to length(s) do
If not(s[i] in['0'..'9'] then s[i]:=#32;
t:=0;s:=s+#32;
Repeat
s1:='';i:=1;
While s[1]=#32 do delete(s,1,1);
While (s[i]<>#32) and (i<=length(s)) do
begin
s1:=s1+s[i];
i:=i+1;
end;
Delete(s,1,pos(#32,s));
Val(s1,n,code);
t:=t+n;
Until s='';
write('tong la:',t);
readln
End.
Là nếu ký tự đó không phải là số thì em sẽ gán cho nó là ký tự trắng đó anh/chịCâu if not gì gì đó nghĩa là j vậy Ạ chỉ cho em vs
Đầu tiên em sẽ gán cho các ký tự không phải số thành #32 Vd : abcs123s5s6 sẽ thành _ _ _ _123_5_6Em vẫn ko hiểu cho lắm chị có thể giải thích ý tưởng bài của chị vừa làm ko Ạ
Repeat
s1:='';i:=1; Gán 1 cho i và gán s1= rỗng
While s[1]=#32 do delete(s,1,1); Xóa các ký tự trắng thừa đầu tiên VD:xâu vừa rồi sau khi xóa là 123_5_6
While (s[i]<>#32) and (i<=length(s)) do
begin (Nếu điều kiện thõa mãn thì em sẽ đưa các
s1:=s1+s[i]; ký tựt chữ số vào xâu s1
i:=i+1; rồi tăng biến đếm
end;
Delete(s,1,pos(#32,s)); sau đó xóa cái số vừa đưa vào
Val(s1,n,code); sử dụng lệnh Val để đổi s1 thành số n
rồi cộng vào t
t:=t+n;
Until s='';
Sr ạ , sửa lại làCam ơn ạ em hiểu r nhưng mà lệnh
If not s in['0'..'9'] r gán = rỗng nó bị lỗi sao ý chạy ko DC chị ạ