zoukankan      html  css  js  c++  java
  • 宽字符串忽略大小写比较的实现(原)

                                                                                                                宽字符串忽略大小写比较的实现(原)

                                                                                                                            孙文涛 2008-07-24

    在Mac机器平台上没有wcsicmp 或 wcscasecmp之类的函数实现对宽字符忽略大小写的比较,所以实现了好几种方法。

    一个自然的思路是:

    (1) wcscpy 原字符串到tmp字符串;

    (2) tolower tmp字符串;

    (3) 然后调用仅存的wcscmp 完成比较。

    我曾经实现过几次这个步骤,一个是实现起来比较繁琐,效率等方面更是不好说。

    今天晚上算是花了些时间,在google code中search了好些代码,终于实现了一个较好的版本。

    #include <stdlib.h>  // for wcstombs
    #include <wctype.h>  // for towlower
    #include <wchar.h>   // for wchar_t
    #include <stdio.h>   

    int wcscasecmp(const wchar_t* cs,const wchar_t * ct)
    {
     
    while (towlower(*cs) == towlower(*ct))
       
    {
          
    if (*cs == 0)
             
    return 0;
          cs
    ++;
          ct
    ++;
       }

       
    return towlower(*cs) - towlower(*ct);
    }



    int main()
    {
        wchar_t mpString[] 
    = L"Hello World";
        wchar_t strMpString[] 
    = L"HELLO WORLD";
        
        
    int ret = wcscasecmp(mpString, strMpString);
        
    if(! ret)
        
    {
            printf(
    "Year! Equals!\n");
        }

        
    else
        
    {
            printf(
    "Oops! Not equals!\n");
        }

        
        
    // after conversion
        wprintf(L"after conversion mpString = %s \n", mpString);
        wprintf(L
    "after conversion strMpString = %s \n", strMpString);
    }

    体会:

    (1) 以后如果碰到类似的问题,多用Google Code搜索;

    (2) Apple Mac OS X的开发,基本的C/C++函数的查询在这个网页,我平时需要反复查询C/C++ API,所以这个网站比较实用的。

    http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/index.html#//apple_ref/doc/framework/manpages

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1250924.html
Copyright © 2011-2022 走看看