C言語,strchr()関数で文字列中の文字を先頭から検索する

スポンサーリンク

鍛錬 749

C言語,strchr()関数で文字列中の文字を先頭から検索する

文字列の先頭から指定した文字を検索するには、strchr()関数を使用します。
 
以下は、strchr()関数についてです。

#include <string.h>

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

引数

以下は、上記の引数についてです。

引数 意味
const char *s 検索対象の文字列
int c 検索する文字

戻り値

以下は、戻り値についてです。

戻り値
char 文字が存在した場合 最初に一致した文字へのポインタ
文字が存在しなかった場合 NULL
 
スポンサーリンク

プログラム

以下は、文字列の先頭から指定した文字を検索するプログラム、test_strchr.c です。

今回は、文字列「ABCDEFG」から、文字「C」と「P」を検索しています。

// include
#include <stdio.h>
#include <string.h>

// main
int main(void)
{
	char tmp[256] = "";
	char *cp;
	int ic;
	
	// ----------------------------------------------------
	strncpy(tmp, "ABCDEFG", sizeof(tmp) - 1);
	printf("文字列 %s について確認\n", tmp);
	
	// 'C'が存在するのかを検索
	ic = 'C';
	cp = strchr(tmp, ic);
	if (cp == NULL) {
		printf("%c は存在しない\n", ic);
	}
	else {
		printf("%c が存在した。「*」に変換\n", ic);
		*cp = '*';
		printf("%s\n", tmp);
	}
	
	// ----------------------------------------------------
	printf("\n");
	strncpy(tmp, "ABCDEFG", sizeof(tmp) - 1);
	printf("文字列 %s について確認\n", tmp);
	
	// 'P'が存在するのかを確認
	ic = 'P';
	cp = strchr(tmp, ic);
	if (cp == NULL) {
		printf("%c は存在しない\n", ic);
	}
	else {
		printf("%c が存在した。「*」に変換\n", ic);
		*cp = '*';
		printf("%s\n", tmp);
	}
	
	return 0;
}

実行結果

以下は、プログラム test_strchr.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_strchr.c -o test_strchr
***@ubuntu:~/***/test/c$ ./test_strchr
文字列 ABCDEFG について確認
C が存在した。「*」に変換
AB*DEFG

文字列 ABCDEFG について確認
P は存在しない

 
上記に示した通り、文字列の先頭から指定した文字を検索することができました。

スポンサーリンク

シェアする

フォローする