LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

Неоптимизированная пятиминутка:

#include <stdio.h>

static int word_count;

int push_back(char *p)
{
        char *prev = p;

        while(*p) {
                if(*p == ' ') {
                        *p++ = '\0';
                        if(*p != '\0') {
                                push_back(p);
                                continue;
                        } else {
                                break;
                        }
                }
                p++;
        }
        if(word_count)
                putchar(' ');
        word_count++;
        printf("%s", prev);
}

int main(int argc, char **argv)
{
        char *p;

        if(argc != 2) {
                fprintf(stderr, "Usage %s string\n", argv[0]);
                return 1;
        }
        push_back(argv[1]);
        if(word_count)
                putchar('\n');
        return 0;
}

Исходная версия vodz, :

Неоптимизированная пятиминутка:

#include <stdio.h>

static int word_count;

int push_back(char *p)
{
        char *prev = p;

        while(*p) {
                if(*p == ' ') {
                        *p++ = '\0';
                        if(*p != '\0') {
                                push_back(p);
                                continue;
                        } else {
                                break;
                        }
                }
                p++;
        }
        if(word_count)
                putchar(' ');
        word_count++;
        printf("%s", prev);
}

int main(int argc, char **argv)
{
        char *p;

        if(argc != 2) {
                fprintf(stderr, "Usage %s string\n", argv[0]);
                fprintf(stderr, "Usage %s string\n", argv[0]);
                return 1;
        }
        push_back(argv[1]);
        if(word_count)
                putchar('\n');
        return 0;
}