zoukankan      html  css  js  c++  java
  • strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l, setlocale(LC_CTYPE, "Japanese_Japan")(MSDN的官方示例)

    // crt_strlen.c  
    // Determine the length of a string. For the multi-byte character  
    // example to work correctly, the Japanese language support for  
    // non-Unicode programs must be enabled by the operating system.  
      
    #include <string.h>  
    #include <locale.h>  
      
    int main()  
    {  
       char* str1 = "Count.";  
       wchar_t* wstr1 = L"Count.";  
       char * mbstr1;  
       char * locale_string;  
      
       // strlen gives the length of single-byte character string  
       printf("Length of '%s' : %d
    ", str1, strlen(str1) );  
      
       // wstrlen gives the length of a wide character string  
       wprintf(L"Length of '%s' : %d
    ", wstr1, wcslen(wstr1) );  
      
       // A multibyte string: [A] [B] [C] [katakana A] [D] []  
       // in Code Page 932. For this example to work correctly,  
       // the Japanese language support must be enabled by the  
       // operating system.  
       mbstr1 = "ABC" "x83x40" "D";  
      
       locale_string = setlocale(LC_CTYPE, "Japanese_Japan");  
      
       if (locale_string == NULL)  
       {  
          printf("Japanese locale not enabled. Exiting.
    ");  
          exit(1);  
       }  
       else  
       {  
          printf("Locale set to %s
    ", locale_string);  
       }  
      
       // _mbslen will recognize the Japanese multibyte character if the  
       // current locale used by the operating system is Japanese  
       printf("Length of '%s' : %d
    ", mbstr1, _mbslen(mbstr1) );  
      
       // _mbstrlen will recognize the Japanese multibyte character  
       // since the CRT locale is set to Japanese even if the OS locale  
       // isnot.   
       printf("Length of '%s' : %d
    ", mbstr1, _mbstrlen(mbstr1) );  
       printf("Bytes in '%s' : %d
    ", mbstr1, strlen(mbstr1) );     
      
    }  

    https://msdn.microsoft.com/en-us/library/78zh94ax.aspx

  • 相关阅读:
    __module__ 和 __class__
    __str__ 和 __repr
    __getitem__ __setitem__ __delitem__ 使用
    授权
    __getattr__ __delattr__ __setattr__ __getattribute__使用(重写python提供的错误信息)
    __import__
    hasattr getattr setattr delattr --> (反射)
    类三大特性(继承 多态 封装)
    静态方法@staticmethod
    类方法@classmethod
  • 原文地址:https://www.cnblogs.com/findumars/p/7296544.html
Copyright © 2011-2022 走看看