文字列の反転
Posted feedbacks - 秀丸マクロ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | call reverse_string "Hello";
message $$return;
call reverse_string "こんにちは";
message $$return;
call reverse_string "濁点(だくてん)";
message $$return;
endmacro;
reverse_string:
$$result = "";
while( $$1 != "" ) {
$$char = unichar( unicode( $$1 ) );
$$result = $$char + $$result;
$$1 = rightstr( $$1, strlen( $$1 ) - strlen( $$char ) );
}
return $$result;
|
unichar 、 unicode でなく、 char と ascii でもマルチバイト文字に対応していましたので以下のコードでも動きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | call reverse_string "Hello";
message $$return;
call reverse_string "こんにちは";
message $$return;
call reverse_string "濁点(だくてん)";
message $$return;
endmacro;
reverse_string:
$$result = "";
while( $$1 != "" ) {
$$char = char( ascii( $$1 ) );
$$result = $$char + $$result;
$$1 = rightstr( $$1, strlen( $$1 ) - strlen( $$char ) );
}
return $$result;
|





にしお
#3414()
Rating0/2=0.00
サンプル入出力
>>> print reverse_string("Hello") olleH >>> print reverse_string("こんにちは") はちにんこ >>> print reverse_string("濁点(だくてん)") )んてくだ(点濁[ reply ]