Strstr() avec int

Résolu
nashoy Messages postés 125 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 7 octobre 2006 - 6 nov. 2005 à 23:25
nashoy Messages postés 125 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 7 octobre 2006 - 7 nov. 2005 à 00:27
Bonsoir,
mon problème est le suivant :
j'aimerais utiliser la fonction strstr() avec des variables int , et forcément il râle .. j'ai essayé de faire strstr(char(variable_int),"chercher") mais ça ne lui plait pas non plus ...

De plus, pourriez vous me donner quelques infos sur la fonction instr () ? parce que je ne trouve bizarrement rien sur google ..

En fait j'aimerai faire comme suit :
trouver si un nombre est un nb premier :
je fais une boucle :
for (i=1;i<=chiffre_a_analyser;i++)
si il trouve seulement 2 nombres sans virgules dans le résultat, alors c'est un nb premier

et j'ai donc besoin de strstr pour voir si le résultat de "chiffre_a_analyser / i" contient un "."
Si vous avez une autre methode pour y parvenir, je suis ouvert

Merci beaucoup


nashoy

4 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
6 nov. 2005 à 23:38
Si tu cherches simplement a savoir si un nombre est decimal ou non :

int temp;
float pi = 3.14;

temp = (int)pi;

if ((float)temp == pi) ALORS PAS NOMBRE DECIMAL

+2(p - n)
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 nov. 2005 à 23:41
instr() n'existe pas en C.
strstr() recherche la présence d'une chaine dans une autre chaine, bien entendu rien à voir avec du int qui ne contient que du binaire sur 4 octets.
Un nombre ne contient jamais de virgule ou de point, ce n'est que sa représentation littérale pour lecture humaine qui pourrait en avoir.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008
7 nov. 2005 à 00:13
Salut,
Pourquoi ne pas utiliser la division Euclidienne si le reste est nul alors c'est ok... ?

int a;
cin>>a;
int result;
for(int counter = 0; counter < a, counter++)
{
if(!a%counter)
result = a/counter;
}

Enfin un truc dans le genre ^^...

Fituza
0
nashoy Messages postés 125 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 7 octobre 2006
7 nov. 2005 à 00:27
Oui c'est vrai ça doit aussi marcher ça =D
Je note ... !!
@AlexMAN : en fait, le (float) n'est même pas nécéssaire ;
if ((float)temp == pi) .
En tout cas maintenant ça marche, merci beaucoup!!

nashoy
0
Rejoignez-nous