2010-07-21 16 views
7

Estoy programando un programa en C++ (juego típico) en el que necesita adivinar una letra y comprobará si está presente en una cadena.Quiero ver si un personaje está presente en una cadena

Por ejemplo

secreto de la secuencia: Me gusta programar.

Guess1: 'a'

Pantalla:. .... .. ..... ... un

Etc.

Pero no sé cómo ver si un personaje es en esta serie secreta.

estoy usando std :: string (obligatorio)

Cualquier ayuda se agradece!

+1

1 para el uso de cadena en lugar de arrays de char! –

+1

@Amardeep I HATE las conversiones entre esos dos ... +1 a su comentario. –

+1

@AnonymousPi +1 bucle de comentario infinito ': -P' –

Respuesta

14

Comience por aprender buscando en una documentación como: http://www.cplusplus.com/reference/string/string/. (Pista: usted quiere "encontrar" algo ...)

+3

+1 porque ofreciste documentación en lugar de señalar la respuesta exacta a esta obvia pregunta de tarea. – paercebal

+3

@paercebal: ¿Cómo sabes que no es solo un aficionado aprendiendo? para escribir un programa de juego? La mayoría de las asignaciones de tareas han tendido a utilizar matrices de caracteres y no permitir las funciones de la biblioteca. Además, no les proporciona todo el juego simplemente diciéndoles qué función encuentra un personaje en una cadena. (Oh, +1 para la documentación). –

+0

@Amardeep: la forma en que se formula la pregunta, la pregunta en sí y algunos consejos como "Estoy usando std :: string (** obligatorio **)". cpluplus.com es una muy buena referencia en C++ y el autor de la respuesta ambos lo señalaron y dieron una pista ...^_^... – paercebal

8

Puede utilizar find_first_of

+0

Puede, pero en realidad no es para este trabajo. Está destinado a encontrar cualquiera de un conjunto de caracteres. –

+0

La función también está sobrecargada para tomar solo un carácter – Tomaka17

+2

Sin mencionar que dicho conjunto de caracteres podría consistir en un solo carácter de todos modos. Sin embargo, el uso de 'string :: find' haría su código un poco más conciso, ya que la diferencia de funcionalidad con' string :: find_first_of' es irrelevante en este caso. – JAB

5

Hay varios métodos en std :: string que ayudarían:

find() rfind() find_first_of() find_last_of() substr()

Cuestiones relacionadas