Problema: Necesito poder identificar cuándo se producen dos espacios en blanco consecutivamente.¿Cómo leo el espacio en blanco usando scanf en c?
He leído las siguientes preguntas:
how to read a string from a \n delimited file
y soy consciente de los problemas scanf: http://c-faq.com/stdio/scanfprobs.html
entrada será en el siguiente formato:
1 5 3 2 4 6 2 1 9 0
Dos espacios en blanco indican que el siguiente conjunto de datos debe manejarse y compararse consigo mismo. La longitud de la línea es desconocida y se desconoce el número o enteros en cada grupo. Dos espacios en blanco es lo máximo que separará el siguiente conjunto de datos.
Aunque puedo usar los fgets y varias funciones integradas para resolver este problema, estoy en el punto en que es más fácil resolver el problema con scanf en este momento. Sin embargo, si ese no es el caso, usar fgets, strtok y atoi hará la mayor parte del trabajo, pero aún necesito identificar dos espacios en blanco seguidos.
Lo siguiente tomará enteros hasta que se ingrese un entero no entero.
while (scanf ("%d", &x) == 1)
Lo que necesito que hacer es leer los espacios en blanco, así y si hay dos espacios en blanco consecutivos que va el programa para hacer algo diferente con el siguiente conjunto de datos.
Y una vez que me pongo un espacio en blanco que no sé cómo decir:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Gracias por su tiempo y gracias por su ayuda.
lección aprendida: Mientras que una solución para scanf se publica a continuación por Jonathan Leffler, la solución fue un poco más directo con getc (a modo de requerir menos conocimiento íntimo de la scanf interior, las expresiones regulares y carbón de leña). En retrospectiva, un mejor conocimiento de las expresiones regulares, scanf y char facilitaría el problema y, por supuesto, conocería qué funciones están disponibles y cuál de ellas habría sido la mejor para usar desde el principio.
Eso es un formato de entrada bastante espantosa. Si estás a cargo de ello, rediseña. Si, como sospecho, se te ha asignado una tarea, mala suerte, son un grupo sádico, tus profesores. –
Tenga en cuenta que 'espacio en blanco' es diferente de 'dos espacios'; 'espacio en blanco' significa convencionalmente una variedad de caracteres posibles, que incluyen tabulación y espacio en blanco (y espacio), y algunas veces forman alimentación, tabulación vertical o nueva línea; y ocasionalmente retrocede también. –
@Jonathan Leffler: al menos no está tratando de analizar Whitespace (http://compsoc.dur.ac.uk/whitespace/) – ninjalj