Skip to content

lua_tolstring

指定されたインデックスの値をCの文字列に変換します。

[-0, +0, m]

c
const char *lua_tolstring (lua_State *L, int index, size_t *len);

説明

与えられた有効なインデックスのLua値をCの文字列に変換します。lenがNULLでない場合、文字列の長さを*lenに設定します。Lua値は文字列または数値でなければならず、そうでない場合は関数はNULLを返します。値が数値の場合、lua_tolstringはスタック内の実際の値を文字列にも変更します。(この変更は、テーブル走査中にキーにlua_tolstringが適用されるとlua_nextを混乱させます。)

lua_tolstringはLuaステート内の文字列への完全にアラインされたポインタを返します。この文字列は最後の文字の後に常にゼロ('\0')を持ちます(C言語のように)、しかし、本文中に他のゼロを含むことができます。Luaにはガーベージコレクションがあるため、スタックから対応する値が削除された後にlua_tolstringによって返されるポインタが有効であることは保証されません。

サンプルコード

c
size_t len;
const char *str = lua_tolstring(L, 1, &len);
printf("文字列: %s, 長さ: %zu\n", str, len);

このコードは、指定されたインデックスの値を文字列として取得し、長さと共に表示します。

互換性

  • Lua5.1

関連項目

  • lua_pushstring
  • lua_isstring