第130章 _strlwr, _strupr関数の新バージョン


文字列の文字を全部小文字に変換する関数に_strlwr関数というのがあります。



これの、セキュリティ強化バージョンとしてVC2005では_strlwr_s関数が用意されました。 同じように、_strupr関数は文字列の文字を大文字に変換しますが、新バージョンの _strupr_s関数が用意されました。

string.hをインクルードする必要があります。

errno_t _strlwr_s(
   char *str,
   size_t sizeInBytes
);

errno_t _strupr_s(
   char *str,
   size_t sizeInBytes
);
strは変換対象文字列です。

sizeInBytesは、バッファサイズです。

正常終了したときは0が返されます。そうでないときは、0以外が返されます。

では、簡単なサンプルプログラムを見てみましょう。

/* strlwr01.c */

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

int main()
{
	char str[] = "適当な文字列を入力してください(半角英字)\n", strinput[256];

	printf_s(str);
	gets_s(strinput, sizeof(strinput) - 1);
	_strlwr_s(strinput, sizeof(strinput));
	printf_s("今の入力を小文字にすると「%s」\n", strinput);
	_strupr_s(strinput, sizeof(strinput));
	printf_s("これを大文字にすると「%s」\n", strinput);
}
gets_s関数の第2引数はsizeof(strinput) - 1なのに、_strlwr_s,_strupr_s関数ではsizeof(strinput)になっている点に注意してください。

実行結果は次のようになります。




[Index][総合Index] [Previous Chapter] [Next Chapter]

Update Sep/01/2007 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。