ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
インデックス
プログラミング
その他
Top / <cstring>ヘッダ

<cstring>ヘッダ

マクロ

NULL

空ポインタ定数

解説
 処理系定義空ポインタ定数を表すマクロ。0 や 0L に定義される可能性はあるが、(void*)0 に定義されることはない。

参考
 NULL マクロは、<cstring>ヘッダ以外に、<cstddef>ヘッダ<clocale>ヘッダ<cstdio>ヘッダ<cstdlib>ヘッダ<ctime>ヘッダ、および<cwchar>ヘッダでも定義される。

size_t

サイズの

解説
 sizeof 演算子?の結果の処理系定義符号なし整数型に定義される。

参考
 size_t 型は、<cstring>ヘッダ以外に、<cstddef>ヘッダ<cstdio>ヘッダ<cstdlib>ヘッダ<ctime>ヘッダ、および<cwchar>ヘッダでも定義される。

関数

memchr

メモリブロック内の文字探索

形式
  void* memchr(void* s, int c, size_t n);

  const void* memchr(const void* s, int c, size_t n);

引数
  s:  メモリブロック
  c:  探索する文字 (0 〜 UCHAR_MAX)
  n:  メモリブロックのサイズ (バイト数)

返却値
 文字が見つかった場合はその要素へのポインタを返す。見つからなかった場合は空ポインタ?を返す。

解説
 s で指定したメモリブロックの先頭から n バイトを順に探索し、c に一致する要素を見つける。

参照
wmemchr

memcmp

メモリブロックの単純比較

形式
  int memcmp(const void* s1, const void* s2, size_t n);

引数
  s1:  比較対象のメモリブロック 1
  s2:  比較対象のメモリブロック 2
  n:  比較するサイズ (バイト数)

返却値
 s1s2 より小さいときは負の値を返す。s1s2 より大きいときは正の値を返す。一致していた場合は 0 を返す。

 2 つのメモリブロックの各文字を unsigned char 型として比較する。

memcpy

形式
  void* memcpy(void* s1, const void* s2, size_t n);

memmove

形式
  void* memmove(void* s1, const void* s2, size_t n);

memset

メモリブロックの設定

形式
  void* memset(void* s, int c, size_t n);

引数
  s:  メモリブロック
  c:  設定する文字
  n:  メモリブロックのサイズ (バイト数)

返却値
 s を返す。

解説
 s が指す n バイトのメモリブロックを c の値に設定する。s が指す配列の実際の大きさを超えて書き込みが発生した場合の[[動作は 未定義>未定義の動作]]である。

参照
wmemset

strcat

形式
  char* strcat(char* s1, const char* s2);

strchr

形式
  char* strchr(char* s, int c);
  const char* strchr(const char* s, int c);

strcmp

形式
  int strcmp(const char* s1, const char* s2);

strcoll

形式
  int strcmp(const char* s1, const char* s2);

strcpy

形式
  char* strcpy(char* s1, const char* s2);

strcspn

特定文字群以外で構成される先頭部分の長さ

形式
  size_t strcspn(const char* s1, const char* s2);

引数
  s1:  探索対象の文字列
  s2:  文字群

返却値
 先頭部分の長さを返す。 

解説
 s1 が指す文字列に?ついて、s2 が指す文字群に含まれる文字以外で構成される先頭部分の長さを返す。


#include <cstring>
#include <iostream>

int main() {
  std::cout << std::strspn("baabbcdebevjr", "cde") << std::endl;
}
実行結果
5

参照
strspn, wcscspn

strerror

形式
  char* strerror(int errnum);

strlen

文字列の長さ

形式
  size_t strlen(const char* s);

引数
  s:  文字列

返却値
  文字列の長さを返す。

解説
 s が指す文字列の長さ (文字数) を返す。終端のナル文字は長さに含めない。

参照
wcslen

strncat

形式
  char* strncat(char* s1, const char* s2, size_t n);

strncmp

形式
  int strncmp(const char* s1, const char* s2, size_t n);

strncpy

形式
  char* strncpy(char* s1, const char* s2, size_t n);

strpbrk

形式
  char* strpbrk(const char* s1, const char* s2);

strrchr

形式
  char* strrchr(char* s, int c);

  const char* strrchr(const char* s, int c);

strspn

特定文字群のみで構成される先頭部分の長さ

形式
  size_t strspn(const char* s1, const char* s2);

引数
  s1:  探索対象の文字列
  s2:  文字群

返却値
 先頭部分の長さを返す。 

解説
 s1 が指す文字列について、s2 が指す文字群に含まれる文字のみで構成される先頭部分の長さを返す。


#include <cstring>
#include <iostream>

int main() {
  std::cout << std::strspn("baabbcdebevjr", "abc") << std::endl;
}
実行結果
6

参照
strcspn, wcsspn

strstr

部分文字列の探索

形式
  char* strstr(char* s1, const char* s2);

  const char* strstr(const char* s1, const char* s2);

引数
  s1:  探索対象の文字列
  s2:  部分文字列

返却値
 部分文字列が見つかった場合はその位置のポインタ?を返す。見つからなかった場合は空ポインタ?を返す。

解説
 s1 が指す文字列から s2 が指す部分文字列を見つける。

参考
 C とは異なり、const 修飾? の有無により、2 つの形式が多重定義されている。

参照
wcsstr?

strtok

形式
  char* strtok(char* s1, const char* s2);

strxfrm

文化圏固有の形式に変形

形式
  size_t strxfrm(char* s1, const char* s2, size_t n);

引数
  s1:  結果の格納先
  s2:  元の文字列
  n:  変形する文字数

返却値
 変換後の文字数 (終端のナル文字を含む) を返す。

解説
 s1 の先頭から n 文字を文化圏固有の形式に変換し、s1 に格納する。s1 には n を超える文字が書き込まれることはない。返却値が n より大きい場合、s1 が指す配列の内容は未規定である。n が 0 の場合、s1空ポインタ?であってもよい。s1 が指す配列の実際の大きさを超えて書き込みが発生した場合の動作は未定義である。

 strxfrm で変形された文字列同士を strcmp で比較することは、元の文字列同士を strcoll で比較することと等価である。

参照
strcoll, wcsxfrm

参照

<string.h>ヘッダ


トップ   編集 差分 バックアップ 添付 複製 名前変更   一覧 単語検索   ヘルプ   最終更新のRSS
Counter: 17202, today: 1, yesterday: 0
Last-modified: Sat, 03 Dec 2005 23:07:43 JST (4703d)
 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa