2
void r(char *str) 
{
    char *new = str;
    while (*str != '\0') {
        if (*str != ' ') *(new++) = *str;
        str++;
    }
    *new = '\0';
}   

この機能はあるのですが、if文以降のコードがわかりません。どなたか教えていただけると助かります。

4

4 に答える 4

1

このバージョンのプログラム (K&R スタイル!) は短く、同じことを行います:

void r(char *str) 
{
    char *new;
    for (new=str; *new = *str++; ) {
        if (*new != ' ') new++;
    }
}  
于 2013-05-29T16:09:26.197 に答える
0
while (*str != '\0') {
    if (*str != ' ') *(new++) = *str;
    str++;
}

次と同等です。

while (*str != '\0') {
    if (*str != ' ') {
        *new = *str;
        new++;
    }
    str++;
}
于 2013-05-29T16:18:44.473 に答える