- cstring[meta header]
- std[meta namespace]
- function[meta id-type]
namespace std {
size_t strxfrm(char* s1, const char* s2, size_t n);
}- size_t[link /reference/cstddef/size_t.md]
文字列を、ロケールに基づいて変換する。
変換後の文字列同士を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;
}- std::strxfrm[color ff0000]
5
- C++98