[Windows编程] SHLWAPI 和 CRT (C Runtime) 字符串处理函数的区别-阿里云开发者社区

开发者社区> 技术小胖子> 正文

[Windows编程] SHLWAPI 和 CRT (C Runtime) 字符串处理函数的区别

简介:
+关注继续查看
CRT (C Runtime) 的字符串函数就是我们常见的 strcmp, strchr, strstr 等等
Windows 系统DLL shlwapi.dll  也提供了类似的字符串处理函数,只是大小写有所不同: StrCmp, StrChr, StrStr 等。
两者的区别在于:
1) CRT  的字符串函数不支持 Unicode 字符串 (wchar_t)
2) CRT  的字符串函数不考虑系统的语言环境(locale), 而SHLWAPI 得函数则会考虑语言环境。举一个strrchr/StrRChr例子:
在英文Windows系统上:
StrRChrA("/Test/縺・a.txt", NULL, '/')  返回 "/a.txt"
strrchr("/Test/縺・a.txt", '/') 返回 "/a.xls"
 
在日文Windows系统上:
StrRChrA("/Test/縺・a.txt", NULL, '/')  返回 "/縺・a.txt"
strrchr("/Test/縺・a.txt", '/') 返回 "/a.txt"

日文字符・的第二个字节是0x2f, 正好是 '/'(0x2f) , 所以strchr返回a.txt的前一个字符。在英文系统上,StrRChrA 认为所有字符都是ASCII,所以返回的结果和strrchr一样。 而到了日文系统上,StrRChrA 能够识别日文字符,于是返回正确结果。


 本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/274024,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java编程——重构-你为什么要对参数赋值?
对于学过多门语言的开发者来说,应该都明白在不同语言中对参数赋值有着不同的意义, 总的来说参数有值传递和引用传递两种, 而在Java中只有值传递的概念。
870 0
mysql 数据库引擎 MyISAM InnoDB 大比拼 区别
先给上自己的民间说法,官方英文说法还在翻译解读中,稍后跟上 Mysql 数据库中,最常用的两种引擎是innordb和myisam。Innordb的功能要比myiasm强大很多,但是innordb的性能要比myisam差很多,如果你的网站只是做简单的查询,更新,删除,那么用myiasm是最好的选择。
1059 0
C#中的字符串处理——找出最长数字子串
百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串。 代码如下: private static string SelectNumberFromString(string input) { string result = ""; foreach (Match match in Regex.Matches(input, @"\d+"))//不要在匹配字符串的开头和结尾加上"^"和"$"。
739 0
C++中指针和引用的区别
指针和引用主要有以下区别: 引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。 引用初始化后不能被改变,指针可以改变所指的对象。 不存在指向空值的引用,但是存在指向空值的指针。
906 0
Java编程解密-Dubbo负载均衡与集群容错机制
1 Dubbo简介 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
1085 0
Javascript中字符串直接量与new String的区别
通过String直接创建的字符串和字符串表面量为基本数据类型,属于JavaScript中的直接量(包含数字,以及数组、对象和正则表达式、数字和布尔值的直接量格式)。 通过 New String来实例化的是一个String对象, 所以我们可以调用String对象的方法。
185 0
PHPpraffa也有了,一个PHP版本的阿里云函数计算与API网关的开发框架
发布了Python版本的函数计算与API网关的开发框架后,一直觉得对不起PHP,因为公司一直是用PHP的,我这弄了个Python,实在不该,对了,(Python版本说明点这里。 PHPpraffa是什么? PHPpraffa 是praffa的PHP版本。
1161 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载