Skip to content

duk_map_string()

1.0.0 string

プロトタイプ

c
void duk_map_string(duk_context *ctx, duk_idx_t idx, duk_map_char_function callback, void *udata);

スタック

| ... | val | ... | -> | ... | val | ... |

要約

idxの文字列を処理し、文字列の各コードポイントに対してコールバックを呼び出す。コールバックは、引数 udata とコードポイントを与えられ、置き換えられたコードポイントを返します。成功した場合、置換されたコードポイントからなる新しい文字列が元の文字列を置き換えます。値が文字列でない場合、またはインデックスが無効な場合は、エラーを投げます。

c
static duk_codepoint_t map_char(void *udata, duk_codepoint_t codepoint) {
    /* Convert ASCII to uppercase. */
    if (codepoint >= (duk_codepoint_t) 'a' && codepoint <= (duk_codepoint_t) 'z') {
        return codepoint - (duk_codepoint_t) 'a' + (duk_codepoint_t) 'A';
    }
    return codepoint;
}

duk_push_string(ctx, "test_string");
duk_map_string(ctx, -1, map_char, NULL);
printf("result: %s\n", duk_to_string(ctx, -1));
duk_pop(ctx);

参照

duk_decode_string