文字列のコピー(strncmp)

文字列のコピーには strncmp 関数を使用します。
strncmp 関数は、文字列を先頭から指定文字数分比較してその結果を返します。
ただし、null以降の比較は行いません。
s1 > s2 で正の値、s1 < s2 で負の値、s1 = s2で 0 を返します。
この大小関係は一般に文字コード順によります。

strncmp 関数には、セキュリティ拡張版である strncmp_s 関数が存在します。

構文

char *strncmp(  		
   const char* s1,  	// 比較対象の文字列
   const char* s2,  	// 比較対象の文字列
   size_t n   	        // 比較する文字数
);

必須ヘッダ

<string.h>

文字列を使用した記述例


// string program in C.
#include <stdio.h>
#include <string.h>

int main(int argc, char *args[])
{
    char a1[4] = "xxxx";
    char a2[4] = "xxxa";
    char a3[4] = "xxxb";

    printf("a1 = a1:%d\n", strncmp(a1, a1, sizeof(a1)));
    printf("a1 = a3:%d\n", strncmp(a1, a3, sizeof(a1)));
    printf("a2 = a3:%d\n", strncmp(a2, a3, sizeof(a1)));

    return 0;
}
  1. strncmp 関数を使用して変数「a1」、「a2」、「a3」の文字列を比較します。
    「a1」同士は同じである為、0が返却されます。
    「a1」、「a2」では「a1」の方が大きい為、正の値が返却されます。
    「a2」、「a3」では「a3」の方が大きい為、負の値が返却されます。

実行結果

a1 = a1:0
a1 = a3:1
a2 = a3:-1


Last updated:2022/06/27
Author:efn

';