これの、セキュリティ強化バージョンとして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)になっている点に注意してください。
実行結果は次のようになります。
Update Sep/01/2007 By Y.Kumei