ハイフン付きの姓を比較する 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
ます。指定された文字が見つかったら、文字列の残りを返すと思いますか?