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

  • 相关阅读:
    09-13练习
    IDEA设置项目文件自动Add到Svn/Git
    虚拟机启动项目时报错
    微服务调用时报错
    查询每个月每一天的访问量
    在IDEA中关于项目java版本问题
    复习宝典之设计模式
    复习宝典之Maven项目管理
    复习宝典之Mysql数据库
    复习宝典之Redis
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1250924.html
Copyright © 2011-2022 走看看