void r(char *str)
{
char *new = str;
while (*str != '\0') {
if (*str != ' ') *(new++) = *str;
str++;
}
*new = '\0';
}
この機能はあるのですが、if文以降のコードがわかりません。どなたか教えていただけると助かります。
このバージョンのプログラム (K&R スタイル!) は短く、同じことを行います:
void r(char *str)
{
char *new;
for (new=str; *new = *str++; ) {
if (*new != ' ') new++;
}
}
while (*str != '\0') {
if (*str != ' ') *(new++) = *str;
str++;
}
次と同等です。
while (*str != '\0') {
if (*str != ' ') {
*new = *str;
new++;
}
str++;
}