:: reverse dictionary ::
※ソースファイルについて
指定した文字が最後に現れる位置を求めるには、strrchr 関数を使います。
#include <string.h>
char str[] = "C Program and C++ Program"; char *p; char ch = 'P'; p = strrchr(str, ch);
p は "Program" になります
ワイド文字列の場合は wcsrchr 関数を使います。
#include <locale.h> #include <string.h>
wchar_t str[] = L"CプログラムとC++プログラム"; wchar_t *p; wchar_t ch = L'グ'; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ p = wcsrchr(str, ch);
p は "グラム" になります
char *strrchr(const char *s, int c) wchar_t *wcsrchr(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 = strrchr(str, ch); index = p - str;
index は 18 になります。
ワイド文字列の場合も同じです。
wchar_t str[] = L"CプログラムとC++プログラム"; wchar_t *p; wchar_t ch = L'グ'; int index; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ p = wcsrchr(str, ch); index = p - str;
index は 12 になります。
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com