Utiliser le contenu d'un string comme un int
azerty0
Messages postés
1322
Statut
Membre
-
azerty0 Messages postés 1322 Statut Membre -
azerty0 Messages postés 1322 Statut Membre -
Bonjour,
Voila, la question que je dois résoudre :
"Ecrire uen fonction carrechaine qui calcule le carre dun nombre reprsenté par une chaine de caractères. Cette fonction return -1 si la chaine ne correspond pas a un nombre.
Voici ma fonction :
Et le compilateur me dit :21 cannot convert `const std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `int' in assignment
En gros, je veux remplir mon entier avec mon string, et il veut pas, je sais pas comment faire... =/
Merci d'avance.
Voila, la question que je dois résoudre :
"Ecrire uen fonction carrechaine qui calcule le carre dun nombre reprsenté par une chaine de caractères. Cette fonction return -1 si la chaine ne correspond pas a un nombre.
Voici ma fonction :
string carreChaine ( const string & chaine )
{
int i=0; string copie;
while(i<chaine.length())
{
if(chaine[i]<48 || chaine[i]>57)
copie = -1;
return copie ;
}
i=chaine; i*=i;
return copie;
}
Et le compilateur me dit :21 cannot convert `const std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `int' in assignment
En gros, je veux remplir mon entier avec mon string, et il veut pas, je sais pas comment faire... =/
Merci d'avance.
A voir également:
- Utiliser le contenu d'un string comme un int
- Utiliser iphone comme webcam - Guide
- Comment utiliser chromecast sur tv - Guide
- Utiliser tablette comme deuxieme ecran - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
4 réponses
essaye avec atof :
int a;
char chaine[3];
strcpy(chaine,"01");
a=atof(chaine);
printf("%d",a);
voilà normalement ça marche.
int a;
char chaine[3];
strcpy(chaine,"01");
a=atof(chaine);
printf("%d",a);
voilà normalement ça marche.
si copie est un string, copie=-1 n'est pas possible. copie doit être int
int carreChaine ( const string & chaine )
{
int i=0; int copie=0;
...
copie = -1;
int carreChaine ( const string & chaine )
{
int i=0; int copie=0;
...
copie = -1;
oui, ca passe en compile, mais quand je met des chiffres le programme ne fait rien, enfin, comme sil rentrait en boucle infinie quoi... peux tu mexpliquer un peu ce que tu fais ? Je débute et jai jamais fait de C...
sinon dubeck le return negatif passe en compile...
Le programme en entier :
sinon dubeck le return negatif passe en compile...
Le programme en entier :
#include <iostream>
#include <string>
using namespace std;
string saisiechaine (string &chaine)
{
cout << "Veuillez saisir votre chaine de caractère : " ;
cin >> chaine;
return chaine;
}
double carreChaine ( const string & chaine )
{
int i=0; string copie;
while(i<chaine.length())
{
if(chaine[i]<48 || chaine[i]>57)
return -1;
}
double x=0;
char chain[chaine.length()];
strcpy(chain,"01");
x=atof(chain);
printf("%d",x);
// i=Integer.parseInt(chaine);
x*=x;
return x;
}
void affichereturn(const double &chaine)
{
cout << chaine ;
}
int main ()
{
string chaine;
string S;
S = saisiechaine(chaine);
double C;
C = carreChaine(chaine);
affichereturn(C);
system("PAUSE");
return 0;
}