gpt4 book ai didi

c - strchr()、APT_String 和减法运算

转载 作者:行者123 更新时间:2023-11-30 14:28:28 25 4
gpt4 key购买 nike

我正在使用一个用 C 编写的程序,该程序涉及比较带连字符的姓氏。例如,它可能会将 Mary Jay-Blige 与 Mary Kay-Blige 进行比较。查找连字符并将变量设置为其位置的代码是:

APT_String LAST_NAME
char * p_ich;
int iPosHyphen;
p_ich = strchr(LAST_NAME,'-');
iPosHyphen = p_ich-LAST_NAME+1;

其中 APT_String 是 IBM DataStage 的数据类型。

我继承了上面的代码,它似乎“有效”,但我想对 p_ich-LAST_NAME+1 进行一些澄清。手术。即,如果 strchr()返回第一个“-”的位置,C 是如何处理这个算术的?

如果我打电话cout<<p_ich; ,我得到-Blige 。所以我猜一旦找到指定的字符它就会返回字符串的其余部分?

最佳答案

是的,strchr 返回第一次出现的地址(不是索引)。因此,从中减去原始字符串(地址)即可得到连字符的位置。但这里的 +1 为您提供连字符后的第一个位置(索引)。

这样 p_ich[iPosHyphen] == 'B'。

关于c - strchr()、APT_String 和减法运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com