C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > 文字列 > 文字列を前から検索する

C 標準関数逆引き辞典

:: reverse dictionary ::

文字列

※ソースファイルについて


文字列を前から検索する

文字列を前から検索するには、strstr 関数を使います。

≪宣言≫

#include <string.h>
char str[64] = "WindowsサーバとLinuxサーバ";
char *p;

p = strstr(str, "サーバ");

ソースファイル

p"サーバとLinuxサーバ" になります


ワイド文字列の場合は wcsstr 関数を使います。

≪宣言≫

#include <locale.h>
#include <string.h>
wchar_t str[64] = L"WindowsサーバとLinuxサーバ";
wchar_t *p;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

p = wcsstr(str, L"サーバ");

ソースファイル

p"サーバとLinuxサーバ" になります

▼ 関数

char *strstr(const char *s, const char *sk)
wchar_t *wcsstr(const wchar_t *s, const wchar_t *sk)

検索文字列 sk を対象の文字列 s の最初から検索します。

検索文字列 sk が見つかった場合、その先頭文字のポインタを返します。 検索文字列 sk が見つからなかった場合は NULL を返します。

char str[64] = "WindowsサーバとLinuxサーバ";
char *p;

p = strstr(str, "Solarisサーバ");

ソースファイル

pNULL になります。


ワイド文字列も同じです。

wchar_t str[64] = L"WindowsサーバとLinuxサーバ";
wchar_t *p;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

p = wcsstr(str, L"Solarisサーバ");

ソースファイル

pNULL になります。

●引数

s … 対象の文字列
sk … 検索文字列

●戻り値

・検索文字列 sk が見つかった … その先頭文字のポインタ
・検索文字列 sk が見つからなかった … NULL

▼ 参考

見つかった文字列の先頭のインデックスは、計算で求めることができます。

char str[64] = "WindowsサーバとLinuxサーバ";
char *p;
int index;

p = strstr(str, "Linux");
index = p - str;

ソースファイル

index15 になります。
str[15] = 'L'


ワイド文字列の場合も同じです。

wchar_t str[64] = L"WindowsサーバとLinuxサーバ";
wchar_t *p;
int index;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

p = wcsstr(str, L"Linux");
index = p - str;

ソースファイル

index11 になります。
str[11] = L'L'

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

文字列 - string -


ホーム > C 標準関数逆引き辞典 > 文字列 > 文字列を前から検索する

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com