mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-18 11:52:22 -07:00
35 lines
582 B
Odin
35 lines
582 B
Odin
#import "fmt.odin"
|
|
#import "utf8.odin"
|
|
|
|
main :: proc() {
|
|
MAX :: 64
|
|
buf: [MAX]rune
|
|
backing: [MAX]byte
|
|
offset: int
|
|
|
|
msg := "Hello"
|
|
count := utf8.rune_count(msg)
|
|
assert(count <= MAX)
|
|
runes := buf[:count]
|
|
|
|
offset = 0
|
|
for i := 0; i < count; i++ {
|
|
s := msg[offset:]
|
|
r, len := utf8.decode_rune(s)
|
|
runes[count-i-1] = r
|
|
offset += len
|
|
}
|
|
|
|
offset = 0
|
|
for i := 0; i < count; i++ {
|
|
data, len := utf8.encode_rune(runes[i])
|
|
for j := 0; j < len; j++ {
|
|
backing[offset+j] = data[j]
|
|
}
|
|
offset += len
|
|
}
|
|
|
|
reverse := backing[:count] as string
|
|
fmt.println(reverse)
|
|
}
|