Проблема: Мне нужно уметь определять, когда два пробела встречаются последовательно.
I прочитал следующие вопросы:
как читать строку из файла с разделителями \ n
И мне известно о проблемах scanf: http: // c-faq .com / stdio / scanfprobs.html
Ввод будет в следующем формате:
1 5 3 2 4 6 2 1 9 0
Два пробела указывают, что следующий набор данных необходимо обработать и сравнить с самим собой. Длина строки неизвестна, число или целые числа в каждой группе неизвестны. Два пробела - это больше всего, что разделит следующий набор данных.
Хотя я могу использовать fgets и различные встроенные функции для решения этой проблемы, я нахожусь в той точке, где решить проблему с помощью scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi выполнит большую часть работы, но мне все равно нужно идентифицировать два пробела подряд.
В приведенном ниже примере будут использоваться целые числа, пока не будет введено нецелое число.
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я программа сделает что-то другое со следующим набором данных.
И как только я получу пробел, я не знаю как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок:
Хотя я могу использовать fgets и различные встроенные функции для решения этой проблемы, я нахожусь в той точке, где решение проблемы с помощью scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi выполнит большую часть работы, но мне все равно нужно идентифицировать два пробела подряд.
В приведенном ниже примере будут использоваться целые числа, пока не будет введено нецелое число.
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я программа сделает что-то другое со следующим набором данных.
И как только я получу пробел, я не знаю как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок:
Хотя я могу использовать fgets и различные встроенные функции для решения этой проблемы, я нахожусь в той точке, где решение проблемы с помощью scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi выполнит большую часть работы, но мне все равно нужно идентифицировать два пробела подряд.
В приведенном ниже примере будут использоваться целые числа, пока не будет введено нецелое число.
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я программа сделает что-то другое со следующим набором данных.
И как только я получу пробел, я не знаю как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок: Я нахожусь в той точке, где решить проблему с scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi выполнит большую часть работы, но мне все равно нужно идентифицировать два пробела подряд.
В приведенном ниже примере будут использоваться целые числа, пока не будет введено нецелое число.
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я программа сделает что-то другое со следующим набором данных.
И как только я получу пробел, я не знаю как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок: Я нахожусь в той точке, где решить проблему с scanf на этом этапе, вероятно, будет проще. Однако, если это не так, использование fgets, strtok и atoi выполнит большую часть работы, но мне все равно нужно идентифицировать два пробела подряд.
В приведенном ниже примере будут использоваться целые числа, пока не будет введено нецелое число.
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я программа сделает что-то другое со следующим набором данных.
И как только я получу пробел, я не знаю как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок:
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я буду делать что-то другое со следующим набором данных.
И как только я получаю пробел, я этого не делаю. Не знаю, как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок:
while ( scanf ( "%d", &x ) == 1 )
Что мне нужно, так это читать пробелы, и если есть два последовательных пробела, я буду делать что-то другое со следующим набором данных.
И как только я получаю пробел, я этого не делаю. Не знаю, как сказать:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Я ценю ваше время и благодарю вас за вашу помощь.
Извлеченный урок: В то время как решение для scanf опубликовано ниже Джонатаном Леффлером, решение было немного более простым с getc (поскольку требовалось менее глубокое знание внутреннего scanf, регулярных выражений и char). Оглядываясь назад, можно сказать, что лучшее знание регулярных выражений, scanf и char сделало бы проблему проще и, конечно, зная, какие функции доступны и какую из них лучше всего использовать с самого начала.