文字列操作関数
関数名 | 書 式 | 戻り値 | 機 能 |
strcat | char* strcat( char* p1, char* p2 ); | p1の値がそのまま返る | 文字列p1の後に文字列p2をつなげる |
strcmp | int strcmp( char* p1, char* p2 ); | 負・・・文字列p1が文字列p2より小さい 0・・・2つの文字列は同じ 正・・・文字列p1が文字列p2より大きい | 文字列を比較する |
stricmp | int stricmp( char* p1, char* p2 ); | 負・・・文字列p1が文字列p2より小さい 0・・・2つの文字列は同じ 正・・・文字列p1が文字列p2より大きい | 文字列を比較する。 ただし、大文字小文字を区別しない。 |
strcpy | char* strcpy( char* p1, char* p2 ); | p1の値がそのまま返る | 文字列p2をp1が示すポインタにNULL文字を含めてコピーする |
strlen | int strlen( char* p1 ); | 文字列p1の文字数を返す | 文字列の文字数を調べる |
strset | char* strnset( const char* string, int c ); | 変更された文字列へのポインタ | stringをc(charに変換された値)で上書きする。 |
strstr | char* strstr( const char* string1, const char* string2 ); | string2がstring1内に最初に現れた位置へのポインタを返す。 string2がstring1内に見つからない場合はNULLポインタを返します。 string2が長さ0の文字列を指している場合は、string1を返す。 | 部分文字列を見つけます。 |
strncat | char* strncat( char* p1, char* p2, unsigned int n ); | p1の値がそのまま返る | p1にp2のn文字目までつなげNULL文字を付加する。 文字列p2の長さがnよりも長い場合はp2の長さとする |
strncmp | int strncmp( char* p1, char* p2, unsigned int n ); | 負・・・文字列p1が文字列p2より小さい 0・・・2つの文字列は同じ 正・・・文字列p1が文字列p2より大きい | 文字列をn文字目まで比較する |
strnicmp | int strnicmp( char* p1, char* p2, unsigned int n ); | 負・・・文字列p1が文字列p2より小さい 0・・・2つの文字列は同じ 正・・・文字列p1が文字列p2より大きい | 文字列をn文字目まで比較する ただし大文字小文字を区別しない。 |
strncpy | char* strcpy( char* p1, char* p2, unsigned int n ); | p1の値がそのまま返る | p2のn文字目までをp1が示すポインタの位置にコピーする ただしNULL文字はつけない |
strnset | char* strnset( const char* string, int c, size_t count ); | 変更された文字列へのポインタ | stringの最初の最大count文字数をc(charに変換された値)で上書きする。 countがstringより長い場合は、countの代わりにstringの長さになる。 |
strchr | char* strchr( const char* string, int c ); | string中でc が最初に現れた位置へのポインタを返します。 文字が見つからないとNULLを返す。 | string中でcが最初に現れた位置を探す。 文字が見つからないとNULLが返される。 cがNULLの場合は、文字列の終端を返す。 |
strrchr | char* strrchr( const char* string, int c ); | string2で指定した文字セットに属する文字がstring1中に 最後に現れた位置(ポインタ)を返します。 | string内にc(charに変換された値) が最後に現れた位置を見つけます。 |
strcspn | size_t strcspn( const char* string1, const char* string2 ); | string2で指定した文字セットに属する文字がstring1中に 最初に現れた位置のインデックスを返します。 | 複数の文字の中からいずれかの文字が最初に現れる場所を検索します。 |
strpbrk | char* strpbrk( const char* string1, const char* string2 ); | string2で指定した文字セットに属する文字がstring1中に 最初に現れた位置(ポインタ)を返します。 | 複数の文字の中からいずれかの文字が最初に現れる場所を検索します。 strcspnと戻り値が異なるだけです。 |
strdup | char* strdup( const char* string ); | 複製した文字列のポインタ | stringを複製する。 内部でmallocを使用するので、freeで解放する必要がある。 |
strlwr | char* strlwr( const char* string ); | stringがそのまま返される | 指定された文字列を小文字に変換する |
strupr | char* strlwr( const char* string ); | stringがそのまま返される | 指定された文字列を大文字に変換する |
strrev | char* strrev( const char* string ); | 反転した文字列へのポインタを返します。 | 指定された文字列を反転する。 |
strtod | double strtod( const char* nptr, char** endptr ); | 変換によってオーバーフローが発生しない限り、浮動小数点数値を返す。 オーバーフローが発生すると、定数+HUGE_VAL か -HUGE_VAL を返す。 変換できなかった場合、またはアンダーフローが発生した場合は 0 を返す。 | 文字列を倍精度浮動小数点数値に変換する。 認識できない文字が現れるとそこで処理を中止し、そこまでの結果を返す。 |
strtol | double strtol( const char* nptr, char** endptr ); | 変換によってオーバーフローが発生しない限り、文字列nptrに示されている値を返す。 オーバーフローが発生すると定数LONG_MAX または LONG_MIN を返す。 変換できなかった場合は 0 を返す。 | 文字列をlongに変換する。 認識できない文字が現れるとそこで処理を中止し、そこまでの結果を返す。 なお、は基数を表す。 |
strtoul | double strtoul( const char* nptr, char** endptr ); | 変換によってオーバーフローが発生しない限り、文字列nptrに示されている値を返す。 オーバーフローが発生すると定数LONG_MAX または LONG_MIN を返す。 変換できなかった場合は 0 を返す。 | 文字列をunsigned longに変換する。 認識できない文字が現れるとそこで処理を中止し、そこまでの結果を返す。 なお、は基数を表す。 |
strtok | char* strtok( char* string1, const char* string2 ); | string1内の次のトークンへのポインタを返します。 それ以上トークンがないときは NULL を返します。 | 文字列内の次のトークンを見つけます。 呼び出されるたびに、string1内で見つかったデリミタをNULL文字に書き換えて文字列を変更します。 次のトークンを探す場合はstringにNULLを指定します。 下の例題を参照。 |