我正在使用一个用 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
。所以我猜它会在找到指定的字符后返回字符串的其余部分?