74 votes

Comment puis-je convertir un long en une chaîne en C ?

Comment puis-je convertir un ```` en c '?

60voto

Skurmedel Points 9227

Vous pourriez utiliser stringstream.

Il ya généralement quelques fonctions C propriétaires dans la bibliothèque standard pour votre compilateur qui le fait aussi. Je préfère les variantes plus "portable" si.

La façon C de le faire serait avec sprintf, mais ce n'est pas très sûr. Dans certaines bibliothèques, il existe de nouvelles versions comme sprintf_s qui protège contre les dépassements de mémoire tampon.

28voto

Gordon Freeman Points 409

Eh bien, si vous êtes fan de copier-coller, le voici:

18voto

Piotr Findeisen Points 1712

12voto

Ben Lakey Points 5454
int main()
{
    long mylong = 123456789;
    string mystring;
    stringstream mystream;
    mystream << mylong;
    mystring = mystream.str();
    cout << mystring << "\n";
    return 0;
}

9voto

beef2k Points 1852

Je ne sais pas quel genre de devoirs, mais plus probablement l'enseignant ne veulent pas de réponse lorsque vous appelez une "magique" d'une fonction existante (même si c'est la méthode recommandée pour le faire), mais il veut voir si vous pouvez mettre en œuvre ce par votre propre.

Retour dans les jours, mon professeur disait quelque chose comme "je veux voir si vous pouvez programmer vous-même, pas si vous pouvez le trouver dans le système." Eh bien, comment faux il était ;) ..

De toute façon, si votre professeur est le même, ici est la manière difficile à faire..

std::string LongToString(long value)
{
  std::string output;
  std::string sign;

  if(value < 0)
  {
    sign + "-";
    value = -value;
  }

  while(output.empty() || (value > 0))
  {
    output.push_front(value % 10 + '0')
    value /= 10;
  }

  return sign + output;
}

On pourrait dire que l'utilisation d' std::string n'est pas "à la dure", mais je suppose que ce qui compte dans le réel agorithm.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X