次の方法で共有


to 系関数

更新 : 2007 年 11 月

to 系関数とその関連マクロは、1 文字を別の文字に変換します。

__toascii

toupper、_toupper、towupper

tolower、_tolower、towlower

 

解説

to 系関数とマクロの変換は次のとおりです。

ルーチン

マクロ

説明

__toascii

__toascii

c を ASCII 文字に変換します。

tolower

tolower

適切な場合は c を小文字に変換します。

_tolower

_tolower

c を小文字に変換します。

towlower

なし

c を対応するワイド文字の小文字に変換します。

toupper

toupper

適切な場合は c を大文字に変換します。

_toupper

_toupper

c を大文字に変換します。

towupper

なし

c を対応するワイド文字の大文字に変換します。

マクロとしても定義されている to ルーチンの関数バージョンを使用するには、#undef ディレクティブでマクロ定義を削除するか、CTYPE.H をインクルードしないようにします。/Za コンパイラ オプションを使用すると、コンパイラは toupper または tolower の関数バージョンを使用します。toupper 関数と tolower 関数の宣言は、STDLIB.H にあります。

__toascii ルーチンは、c の下位 7 ビットを除くすべてのビットを 0 に設定するため、変換された値は ASCII 文字セットの文字を表します。c が既に ASCII 文字を表している場合、c は変更されません。

tolower ルーチンと toupper ルーチンの動作は次のとおりです。

  • 現在のロケールの LC_CTYPE カテゴリに依存します。tolowerisupper を呼び出し、toupperislower を呼び出します。

  • c が現在のロケールで大文字小文字の区別を持ち、対応する大文字小文字がロケールで存在する場合は、c を変換します。それ以外の場合、c は変更されません。

_tolower ルーチンと _toupper ルーチンの動作は次のとおりです。

  • ロケールに依存せず、tolowertoupper よりもはるかに高速です。

  • isascii(c) が 0 以外であり、さらに isupper(c) または islower(c) のいずれかが 0 以外の場合だけに使用できます。

  • c が大文字小文字の区別を持つ ASCII 文字でない場合は、結果は未定義です。

towlower 関数と towupper 関数は、次の条件が 2 つとも 0 以外の場合にだけ、c の変換済みコピーを返します。それ以外の場合、c は変更されません。

  • c が大文字小文字の区別を持つ (つまり、iswupperiswlower, のどちらかが 0 以外になる) ワイド文字です。

  • 対応する大文字または小文字のワイド文字が存在します。つまり、iswloweriswupper のどちらかが 0 以外になります。

使用例

// crt_toupper.c
/* This program uses toupper and tolower to
 * analyze all characters between 0x0 and 0x7F. It also
 * applies _toupper and _tolower to any code in this
 * range for which these functions make sense.
 */

#include <ctype.h>
#include <string.h>

char msg[] = "Some of THESE letters are Capitals.";
char *p;

int main( void )
{
   printf( "%s\n", msg );

   /* Reverse case of message. */
   for( p = msg; p < msg + strlen( msg ); p++ )
   {
      if( islower( *p ) )
         putchar( _toupper( *p ) );
      else if( isupper( *p ) )
         putchar( _tolower( *p ) );
      else
         putchar( *p );
   }
}

Some of THESE letters are Capitals.
sOME OF these LETTERS ARE cAPITALS.

参照

参照

データ変換

ロケール

is、isw 系ルーチン