uses crt;
var st:string;
dem,i,d:integer;
begin
clrscr;
write('st='); readln(st);
d:=length(st);dem:=0;
for i:=1 to d do
if st[i] in['0'..'9'] then inc(dem);
writeln(dem);
readln;
end.
Tham khảo bài anh Nguyễn Lê Phước Thịnh nhé
uses crt;
var st:string;
dem,i,d:integer;
begin
clrscr;
write('st='); readln(st);
d:=length(st);dem:=0;
for i:=1 to d do
if st[i] in['0'..'9'] then inc(dem);
writeln(dem);
readln;
end.
Mình nghĩ đề bạn nên phải là "đếm xem có bao nhiêu kí tự số" vì kiểu dữ liệu xâu kí tự (string) xử lí trên bảng mã ASCII và không có số âm.
Thuật toán: Duyệt lần lượt các ô kí tự, nếu string[i] nằm trong khoảng từ '0' đến '9' thì cập nhật kết quả (tăng biến đếm).
Code tham khảo (C++):
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s; // nhap vao string
int cnt = 0; // khoi tao bien dem
for (int i = 0; i < (int) s.size(); ++i)
if (s[i] >= '0' && s[i] <= '9') ++cnt; // neu trong khoang thi cnt = cnt + 1
cout << cnt; // in ra ket qua
return 0;
}