共用方式為


to 函式

每個函 to 式及其相關聯的巨集,如果有的話,都會將單一字元轉換成另一個字元。

__toascii
tolower、 、 _tolowertowlower
toupper、 、 _touppertowupper

備註

to 式和巨集轉換如下所示。

常式 Macro 描述
__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 編譯器選項,編譯器會使用函式版本的 touppertolower。 和 tolower 函式的toupper宣告位於 STDLIB.H中。

__toascii 常式會將所有位元設定為 0,但不含 c 的低序位 7 個位元,因此轉換過的值代表 ASCII 字元集中的字元。 如果 c 已經代表 ASCII 字元,則 c 會保持不變。

tolowertoupper 常式:

  • 相依於目前地區設定的 LC_CTYPE 分類 (tolower 會呼叫 isupper,而 toupper 會呼叫 islower)。
  • 如果 c 代表目前地區設定中適當大小寫的可轉換字母,而且具有該地區設定的相反大小寫,則會轉換 c。 否則,c 會保持不變。

_tolower_toupper 常式:

  • 與地區設定無關且更快速的 tolowertoupper 版本。
  • 只有在 isascii(c)isupper(c)islower(c) 分別為非零時才能使用。
  • 如果 c 不是適當轉換案例的 ASCII 字母,則有未定義的結果。

只有在下列兩個條件都為非零時,towlowertowupper 函式才會傳回轉換的 c 複本。 否則,c 會保持不變。

  • c 是適當大小寫的寬字元 (亦即,iswupperiswlower 分別為非零)。
  • 目標案例有對應的寬字元(也就是分別為 iswlower零或iswupper )。

範例

// 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>
#include <stdio.h>

char msg[] = "Some of THESE letters are Uppercase.";
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 Uppercase.
sOME OF these LETTERS ARE uPPERCASE.

另請參閱

資料轉換
Locale
is, isw 常式