*s++,s++,それぞれの使い分けてる意味を知りたいです。
下記は、とある書籍の問題です
これは文字列sに含まれている数文字'0'~'9'の個数を、cnt[0]~cnt[9]に格納する関数です。
void cnt_digit(const char *s, int cnt[])
{
int i;
for (i = 0; i < 10; i++)
*(cnt + i) = 0;
while (*s) {
if (*s >= '0' && *s <= '9')
cnt[*s - '0']++;
s++;
}
}
s++でs[0]からs[1]へずらしていくのは分かりますが、*s++ではいけないのでしょうか?
*s++ = *sの値に1を加える。
s++ = 配列sの要素を1個後方を指すように更新。
・・・?
*s++としても正常に動作しています。
他の例題で、*s++としているケースもあり、それぞれどのような意味で使い分けているのかわからなくなりました。
//文字列sに含まれる文字chを探索
int str _char(const char *s, int ch)
{
int idx = 0;
while (*s) {
if(*s++ == ch)
return idx;
idx++;
}
return -1;
}
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/17 00:04
2017/09/17 00:28 編集
2017/09/17 04:46