web-dev-qa-db-fra.com

Comment puis-je inclure l'en-tête de chaîne?

J'essaie d'en savoir plus sur strings, mais différentes sources m'indiquent d'inclure des en-têtes différents.

Certains disent d'utiliser <string.h>, mais d'autres mentionnent "apstring.h". J'ai été capable de faire quelques tâches de base avec apstring, mais on m'a dit que l'autre était plus puissant. Cependant, lorsque j'inclut <string.h> et tente de déclarer certaines variables de chaîne, des erreurs se produisent. Quel est le bon usage?

26
Maxpm

Vous voulez inclure <string> et utiliser std::string:

#include <string>
#include <iostream>

int main()
{
    std::string s = "a string";
    std::cout << s << std::endl;
}

Mais ce que vous devez vraiment faire est d’obtenir un livre de niveau d’introduction . Vous n'allez pas apprendre correctement d'une autre manière, et certainement pas supprimer des informations en ligne.

58
GManNickG

Les sources qui vous disent d’utiliser apstring.h sont des matériaux pour le cours de Advanced Placement en informatique. Il décrit la classe de chaînes a que vous utiliserez tout au long du cours. Certaines questions de l'examen peuvent y faire référence et impliquer une connaissance moyenne de cette classe. À moins que vous ne soyez inscrit à cette classe ou que vous n'étudiez pour passer cet examen, ignorez ces sources.

Les sources qui vous recommandent d'utiliser string.h ne parlent pas vraiment de C++ ou sont gravement obsolètes. Vous devriez probablement les ignorer aussi. Cet en-tête est destiné aux fonctions C permettant de manipuler des tableaux de caractères terminés par un caractère nul, également appelés chaînes de style C.

En C++, vous devez utiliser l'en-tête de chaîne. Écrivez #include <string> en haut de votre fichier. Lorsque vous déclarez une variable, le type est string et il est situé dans l'espace de noms std. Son nom complet est donc std::string. Vous pouvez éviter de devoir écrire tout le temps la partie espace de noms de ce nom en suivant l'exemple de beaucoup de textes d'introduction et en disant using namespace std en haut des fichiers sources C++ (mais généralement, pas fichiers d'en-tête que vous pourriez écrire).

11
Rob Kennedy

Je n'ai pas entendu parler de "apstring". Si vous voulez utiliser string avec c ++, vous pouvez faire comme ceci:

#include<string>
using namespace std;
int main()
{
   string str;
   cin>>str;
   cout<<str;
   ...
   return 0;
}

J'espère que cela peut servir

6
yubaolee

La classe de chaîne C++ est std::string. Pour l'utiliser, vous devez inclure l'en-tête <string>.

Pour connaître les bases de l'utilisation de std::string, vous voudrez consulter un bon livre d'introduction au C++ .

4
James McNellis

Vous ne devriez pas utiliser string.h si vous codez en C++. Les chaînes en C++ appartiennent à la variété std::string, qui est beaucoup plus facile à utiliser que les anciennes "chaînes" de style C. Utilisation:

#include <string>

pour obtenir les informations correctes et quelque chose de std::string s pour en déclarer un. Les nombreuses façons merveilleuses d’utiliser std::string peuvent être vues ici .

Si vous jetez un coup d'œil au grand nombre de questions sur le dépassement de pile concernant l'utilisation des chaînes C, vous verrez pourquoi vous devriez les éviter autant que possible :-)

3
paxdiablo

"apstring" n'est pas C++ standard, en C++, vous voudriez utiliser la classe <string>

1
Lie Ryan

Peut-être que ce lien vous aidera.

Voir: std :: string documentation .

#include <string> est le plus largement accepté.

0
prolink007

Utilisez ceci:

#include < string>
0
fatih