Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 10:50   #1
Валхаллен
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 1
По умолчанию Задача на удаление начальных пробелов.

Надо написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы.
Язык С.
Заранее спасибо.
Валхаллен вне форума Ответить с цитированием
Старый 16.12.2011, 11:34   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Функция getline(char* line, int max) считывает строку из терминала в line, исключая пробелы вначале строки (длина строки не более max) и возвращает длину считанной строки.

Код:
#include <stdio.h>

#define MAXLEN 100

int main () {
    int getline(char* line, int max);
    int len;
    char line[MAXLEN];

    while ((len = getline(line, MAXLEN)) != EOF) {

        // действия со строкой и значением её длины

    }

    return 0;
}

// getline: считывает строку в s, исключая начальные пробелы
int getline(char* s, int max) {
    int c, i, k;
    int fbegin; // флаг: 1 - начальный пробел; 0 - неначальный пробел

    k = 0;
    fbegin = 1;
    for (i = 0; i < max-1 && (c = getchar()) != EOF && c != '\n'; i++) {
        if (c != ' ') {
            fbegin = 0;
        }
        if (!fbegin || c != ' ') {
            s[k++] = c;
        }
    }
    if (c == '\n') {
        s[k++] = c;
    }
    s[k] = '\0';

    return k;
}

Последний раз редактировалось 8Observer8; 16.12.2011 в 12:17. Причина: Ошибка: вместо return i; надо return k;
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление пробелов Tradua Общие вопросы C/C++ 3 05.05.2011 11:31
Удаление начальных пробелов на С Corpinccom Общие вопросы C/C++ 8 23.07.2010 00:53
си++ удаление начальных пробелов Bonne Помощь студентам 1 17.04.2010 18:05
Удаление пробелов на C++ REztor Помощь студентам 1 02.11.2009 20:36
Удаление пробелов Иван 883 Помощь студентам 1 20.04.2009 22:23