strncmp() — ストリングの比較
フォーマット
#include <string.h>
int strncmp(const char *string1, const char *string2, size_t count);
言語レベル
ANSI
スレッド・セーフ
はい
説明
strncmp() 関数は、string1 および string2 を count の最大数まで比較します。
戻り値
strncmp() 関数は、2 つのストリング間の関係を示す次のような値を戻します。
| 値 | 意味 |
|---|---|
| 0 より小さい値 | string1 は string2 より小さい |
| 0 | string1 は string2 と等しい |
| 0 より大きい値 | string1 は string2 より大きい |
例
この例では、strcmp() 関数と
strncmp() 関数の違いを説明します。
#include <stdio.h>
#include <string.h>
#define SIZE 10
int main(void)
{
int result;
int index = 3;
char buffer1[SIZE] = "abcdefg";
char buffer2[SIZE] = "abcfg";
void print_result( int, char *, char * );
result = strcmp( buffer1, buffer2 );
printf( "Comparison of each character¥n" );
printf( " strcmp: " );
print_result( result, buffer1, buffer2 );
result = strncmp( buffer1, buffer2, index);
printf( "¥nComparison of only the first %i characters¥n", index );
printf( " strncmp: " );
print_result( result, buffer1, buffer2 );
}
void print_result( int res, char * p_buffer1, char * p_buffer2 )
{
if ( res == 0 )
printf( "¥"%s¥" is identical to ¥"%s¥"¥n", p_buffer1, p_buffer2);
else if ( res < 0 )
printf( "¥"%s¥" is less than ¥"%s¥"¥n", p_buffer1, p_buffer2 );
else
printf( "¥"%s¥" is greater than ¥"%s¥"¥n", p_buffer1, p_buffer2 );
}
/***************** Output should be similar to: *****************
Comparison of each character
strcmp: "abcdefg" is less than "abcfg"
Comparison of only the first 3 characters
strncmp: "abcdefg" is identical to "abcfg"
*/
関連情報
- strcmp() — ストリングの比較
- strcspn() — 最初に一致した文字のオフセットの検索
- strncat() — ストリングの連結
- strncpy() — ストリングのコピー
- strpbrk() — ストリング内の文字の検索
- strrchr() — ストリング内で文字が最後に現れる位置の検出
- strspn() —最初の不一致文字のオフセットの検索
- wcscmp() — ワイド文字ストリングの比較
- wcsncmp() — ワイド文字ストリングの比較
- <string.h >
- __wcsicmp() — 大/小文字の区別をしないワイド文字ストリングの比較
- __wcsnicmp() — 大/小文字の区別をしないワイド文字ストリングの比較