由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一个有关c++ strcmp的问题
相关主题
1道brianbench 的题 c++问个《编程实践》(英文版)里面的问题
谁能给个hashset实现的例子么?攒个人品,发个google电话面试题
leetcode上wild matchFacebook phone screen
wordbreak in C?M面完焦急等待中。。。。。大家看看我是个什么水平?
我的几个面试算法解答。请教一个字符串比较排序的问题 (转载)
这个题有什么好办法。(找出 5^1234566789893943的从底位开始问到算法题和一道c++题
问一个Random Number 问题H1B 概率最低事多少(对于adv degree)
A家店面栽在一个老中手里帮我看看这两个题目回答
相关话题的讨论汇总
话题: char话题: s1话题: s2话题: unsigned话题: return
进入JobHunting版参与讨论
1 (共1页)
r**d
发帖数: 116
1
下面是apple的source code. 我不明白为什么需要把char 转换成unsigned char?
strcmp(const char *s1, const char *s2)
{
for ( ; *s1 == *s2; s1++, s2++)
if (*s1 == '\0')
return 0;
return ((*(unsigned char *)s1 < *(unsigned char *)s2) ? -1 : +1);
}
S**I
发帖数: 15689
2
In the return statement, what if *s1 is '\0' and *s2 is a signed char with
negative value? the function sould return -1 in this case, but it will
return +1 instead.

【在 r**d 的大作中提到】
: 下面是apple的source code. 我不明白为什么需要把char 转换成unsigned char?
: strcmp(const char *s1, const char *s2)
: {
: for ( ; *s1 == *s2; s1++, s2++)
: if (*s1 == '\0')
: return 0;
: return ((*(unsigned char *)s1 < *(unsigned char *)s2) ? -1 : +1);
: }

k*******a
发帖数: 433
3
if they are ASCII code, char* is ok
if they are extended ASCII code, must be unsigned char *
1 (共1页)
进入JobHunting版参与讨论
相关主题
帮我看看这两个题目回答我的几个面试算法解答。
再发两道F电面题这个题有什么好办法。(找出 5^1234566789893943的从底位开始
二维数组参数怎么传好?问一个Random Number 问题
一道image processing题A家店面栽在一个老中手里
1道brianbench 的题 c++问个《编程实践》(英文版)里面的问题
谁能给个hashset实现的例子么?攒个人品,发个google电话面试题
leetcode上wild matchFacebook phone screen
wordbreak in C?M面完焦急等待中。。。。。大家看看我是个什么水平?
相关话题的讨论汇总
话题: char话题: s1话题: s2话题: unsigned话题: return