:: reverse dictionary ::
※ソースファイルについて
指定した文字が最初に現れる位置を求めるには、strchr 関数を使います。
#include <string.h>
char str[] = "C Program and C++ Program"; char *p; char ch = 'P'; p = strchr(str, ch);
p は "Program and C++ Program" になります
ワイド文字列の場合は wcschr 関数を使います。
#include <locale.h> #include <string.h>
wchar_t str[] = L"CプログラムとC++プログラム"; wchar_t *p; wchar_t ch = L'グ'; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ p = wcschr(str, ch);
p は "グラムとC++プログラム" になります
char *strchr(const char *s, int c) wchar_t *wcschr(const wchar_t *s, wint_t c)
文字列 s から文字 c が最初に現れる位置を求めます。
文字 c が見つかった場合は、最初に現れた位置へのポインタを返します。 文字 c が見つからなかった場合は、NULL を返します。
s … 文字列
c … 検索する文字
・文字 c が見つかった … 最初に現れた位置へのポインタ
・文字 c が見つからなかった … NULL
文字 c が最初に現れた位置のインデックスは、計算で求めることができます。
char str[] = "C Program and C++ Program"; char *p; char ch = 'P'; int index; p = strchr(str, ch); index = p - str;
index は 2 になります。
ワイド文字列の場合も同じです。
wchar_t str[] = L"CプログラムとC++プログラム"; wchar_t *p; wchar_t ch = L'グ'; int index; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ p = wcschr(str, ch); index = p - str;
index は 3 になります。
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com