Nhập vào một câu nói (mỗi từ cách nhau một khoảng trắng, không có dấu phẩy, chấm), hãy tách từng từ trong chuỗi ra rồi in. Mỗi từ in kèm với độ dài của từ đó

2 câu trả lời

uses crt;
var s: ansistring;
var cnt, i: longint;
begin
    clrscr;
    readln(s);
    for i:=1 to length(s) do begin
        if s[i] <> #32 then begin
            write(s[i]);
            inc(cnt);
        end else begin
            if cnt > 0 then writeln(' ', cnt);
            cnt:=0;
        end;
    end;
    if cnt > 0 then writeln(' ', cnt);
readln;
end.

Mình sẽ lưu từng từ trong mảng sau đó sẽ dùng length(mang[i]) để xuất độ dài của từ đó

Code:

Program tachtu;
Uses crt;
VAR tu:array[1..100] of string;
i,j:longint;
s:string;
BEGIN
clrscr;
Readln(s);
//Xoa cach thua (neu xau ko thua dau cach thi bo)
While (s[1]=' ') do delete(s,1,1);
While (s[length(s)]=' ') do delete(s,length(s),1);
While (pos('  ',s) > 0) do delete(s,pos('  ',s),1);

//Xu ly
j:=1;
For i := 1 to length(s) do
begin
if s[i] in ['A'..'Z'] + ['a'..'z']+['0'..'9'] then tu[j] := tu[j]+ s[i];
if s[i] = ' ' then inc(j);
end;For i := 1 to j do
begin
writeln(tu[i],' : ',length(tu[i]));
end;
readln;
END.