概要
文字列を、ロケールに基づいて変換する。
変換後の文字列同士をstrcmpで比較すると、変換前の文字列同士をstrcollで比較したのと同じ符号の結果が得られる。
効果
現在のロケールのLC_COLLATEカテゴリに従ってs2が指す文字列を変換し、その結果をs1が指す配列へ、終端のヌル文字を含めて最大n文字コピーする。
戻り値がn以上である場合、s1が指す配列の内容は不定である。
nが0の場合、s1にヌルポインタを渡してもよい。この用途は、変換に必要な配列サイズを取得するために使用できる。
戻り値
変換後の文字列の長さ (終端のヌル文字を含まない) を返す。
備考
- この関数はロケールに依存するため、フリースタンディング処理系では提供されない。
例
#include <cstring>
#include <iostream>
int main()
{
char buf[16];
// 現在のロケールに基づいて"hello"を変換する
std::size_t len = std::strxfrm(buf, "hello", sizeof(buf));
std::cout << len << std::endl;
}
出力例
5
バージョン
言語
- C++98