Classifying and converting ASCII bytes
// Classifying and converting ASCII bytes.
import std.io.println;
import std.text.number;
import std.text.from_bytes;
import std.chars.ascii;
def main(): int {
let text: vector u8 = bytes_from_text("SultanC 2026!");
let digits: mutable uint = 0;
let letters: mutable uint = 0;
let upper: mutable vector u8 = [];
let i: mutable uint = 0;
while (i < (length(text) as uint)) {
if (is_decimal_digit(text[i])) { digits := digits + 1; };
if (is_latin_letter(text[i])) { letters := letters + 1; };
append(upper, to_ascii_uppercase(text[i]));
i := i + 1;
}
println(uint_to_text(digits));
println(uint_to_text(letters));
println(from_bytes(&upper));
return 0;
}// تصنيف بايتات ASCII وتحويلها.
استورد std.io.println;
استورد std.text.number;
استورد std.text.from_bytes;
استورد std.chars.ascii;
عرف الرئيسية(): عدد {
دع النص: متجه ط8 = بايتات_من_نص("SultanC 2026!");
دع الأرقام: متغير طبيعي = 0;
دع الحروف: متغير طبيعي = 0;
دع الكبيرة: متغير متجه ط8 = [];
دع ف: متغير طبيعي = 0;
طالما (ف < (الطول(النص) مثل طبيعي)) {
إذا (رقم_عشري(النص[ف])) { الأرقام := الأرقام + 1; };
إذا (حرف_لاتيني(النص[ف])) { الحروف := الحروف + 1; };
ألحق(الكبيرة, إلى_كبير_أسكي(النص[ف]));
ف := ف + 1;
}
اطبع_سطر(طبيعي_إلى_نص(الأرقام));
اطبع_سطر(طبيعي_إلى_نص(الحروف));
اطبع_سطر(من_بايتات(&الكبيرة));
أرجع 0;
}
Run it
With the interpreter, without compiling:
./build/sultanc run examples/en/chars/ascii.snOr compile it to an executable:
./build/sultanc examples/en/chars/ascii.sn -o build/example && ./build/example