>> C言語関数一覧トップに戻る

C言語 strncmp 使い方

今回はC言語のstrncmpの使い方について説明します。

strncmp関数は文字列を先頭から指定文字数分比較してその結果を返します。

■書式
#include <string.h>
int strncmp(const char *s1, const char *s2, size_t n);

第一引数と第二引数にはそれぞれ比較する文字列
第三引数には先頭から何文字分比較するかという文字数を指定します。

戻り値は、文字コード順で、

s1 > s2 で正の値
s1 < s2 で負の値
s1 = s2で0

を返します。
「戻り値が0ならば比較した二つの文字列は一致している」ということになります。
■サンプルコード
#include <string.h>
#include <stdio.h>

int main(void)
{

	char test1[10] = "abc12";
	char test2[10] = "abcde";



	//test1とtest2の文字列を先頭から5文字比較
	if(strncmp(test1,test2,5)==0){
		puts("文字列は一致しています。");
	}else{
		puts("文字列は一致していません。");
	}


	//test1とtest2の文字列を先頭から3文字比較
	if(strncmp(test1,test2,3)==0){
		puts("文字列は一致しています。");
	}else{
		puts("文字列は一致していません。");
	}

	return 0;
}
■実行結果
文字列は一致していません。
文字列は一致しています。


一度目の比較は先頭から5文字比較しているので「一致していません」と表示されますが、
二度目の比較は先頭から3文字比較していて「abc」の文字列が一致するので、
「一致しています」と表示されることになります。
このようにstrncmpは先頭から指定文字数だけ文字列を比較できるということになります。

>> 【C言語 strncpy 使い方】に進む
>> C言語関数一覧トップに戻る