2010-12-06 11 views
0

Existe-t-il une fonction standard qui retournera un bool pour cela?L'entier n dans la chaîne s? Est 4 dans Ab56c4D? (C++)

J'écris un programme qui joue le jeu de la vie et l'utilisateur entre deux chaînes, S23 et B3 sont des exemples. Dans ma boucle principale, je veux juste vérifier si un nombre entier (le nombre de cellules surround vivantes) est dans l'une des chaînes.

Merci pour votre aide sur cette question. ;)

+2

Vous devriez être clair sur ce que vous entendez par « est dans ». Les chaînes sont composées de caractères, qui sont fondamentalement des entiers qui identifient le caractère à imprimer. D'un autre côté (ce que vous semblez vouloir dire), ils peuvent contenir une série de caractères qui représentent ** l'entier comme un nombre que les humains reconnaissent. –

+0

Bonne idée, Karl mais devrait être extrêmement déroutant pour un novice car la question est très claire pour un expert. – Jaywalker

+0

D'accord avec Karl Knechtel. L'entier 4 est-il dans la chaîne "abc54dec"? Le chiffre 4 apparaît certainement, mais on peut faire valoir que le seul entier dans "abc54dec" est 54, et 54! = 4. – MSalters

Répondre

3

http://www.cplusplus.com/reference/string/string/find/

Recherche la chaîne pour le contenu spécifié soit str, s ou c, et renvoie la position de la première occurrence dans la chaîne. Valeur de retour: La position de la première occurrence dans la chaîne du contenu recherché. Si le contenu est introuvable, la valeur de membre npos est renvoyée.

-1

Parcourez les caractères de la chaîne et si le caractère ((int) cur_char)) est compris entre 48 et 57, renvoyez true.

+1

Tous les caractères entre 48 et 57 sont-ils le nombre 4? – Default

+0

Vous devriez vraiment lire la question complètement, jusqu'à ce que vous le faites, le vote à la baisse reste! – Nim

1

Vous devez d'abord obtenir une version de chaîne de la valeur entière, alors vous pouvez essayer de trouver dans l'autre chaîne:

std::ostringstream oss; 
oss << some_integer; 
if (some_string.find(oss.str()) != std::string::npos) 
    // match...