2011-04-16 22 views
8

Quiero comprobar si un char (string.at(i)) es un espacio en blanco en C++. ¿Cómo puedo hacer esto fácilmente?Compruebe si string.at (i) es un espacio en blanco C++

Tengo este ejemplo de código, y estaba pensando en cambiar el _____ con algo, pero no sé qué. Lo he intentado con ' ', pero eso no funcionó.

for(int i = 0; i < string.length(); i++) 
{ 
    if(string.at(i) == _________) 
    { 
     //do something 
    } 
} 
+0

'string [i] == ' ''debería funcionar, si quieres cheque muy simple . –

+2

No hay ninguna razón para usar 'at' aquí, porque sabe que el índice es válido. – GManNickG

+0

@muntoo: el espacio en blanco no es el único carácter de espacio en blanco. –

Respuesta

12
#include <cctype> 

if (isspace(string.at(i))) 
+0

Gracias, funcionó =) – user709712

2

programadores Unrepentant C migran a C++ se utilizan de forma semiautomática:

#include <cctype> 

if (std::isspace(string.at(i))) 
    ... 

Es muy probable que sea la correcta, incluso para los programadores de C++.

+0

Te gané por 11 segundos. – dan04

+0

@ dan04: Me di cuenta de eso. ¡Bien hecho! –

+0

Gracias señor =) – user709712

5

En lugar de == [algo], quiere: if (isspace(string.at(i)) (o puede que prefiera usar std::isspace).

Edit: Debo agregar que dependiendo de lo que estés haciendo con los caracteres de espacio (o lo que vas con todo lo demás, dependiendo) es posible que quieras usar un algoritmo. Sólo por ejemplo, si desea crear una copia de la cadena con todos los caracteres en blanco eliminado, se puede utilizar:

std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace); 
+0

Muchas gracias =) – user709712

Cuestiones relacionadas