J'utilise actuellement
char *thisvar = "stringcontenthere";
5 Réponses :
est-ce C ou C ++? En C ++, vous devriez utiliser std :: chaîne code> :
std::string aString("stringcontenthere");
const char *thisvar="stringcontenthere";
Il doit lire cecivar = "stringcontenthere" et il devrait être Const Char *
Alors doit être nommé const char * thisconst = "stringContHere"; code> SCNR;
comme autre suggéré, et je veux "le faire" la méthode Si vous avez besoin d'un < Code> c-string code>, Voici un exemple: p> C ++ code>, utilisez un std :: string code>. std :: string code> a une méthode qui donne un const char * code>. p>
en C, cela dépend de la manière dont vous utiliserez la chaîne: p>
char * str = "string"; code> méthode est ok (mais doit être Char Const * Code>) LI>
- Données à transmettre à la sous-fonction, mais ne sera pas utilisée après que la fonction d'appel retourne:
Char Str [] = "String"; CODE> LI>
- Data qui seront utilisés après la fonction, il est déclaré dans les sorties:
Char * str = STRUP ("String"); CODE> et assurez-vous qu'il obtient gratuit code> D éventuellement. li>
ul>
Si cela ne la couvre pas, essayez d'ajouter plus de détails à votre réponse. P>
Cela dépend. Pour les chaînes codées ASCII, voir Paragraphes C et C ++. Pour les chaînes codées Unicode, voir le dernier paragraphe.
Comme David a souligné que cela dépend de la manière d'utiliser la chaîne en C: p>
const char s [] = "bonjour monde"; code> li>
- En tant que chaîne contenant des données variables, alors:
Char S [] = "Hello World"; Code> Li>
- en tant que tableau de données
char * données code>; L'initialisation doit alors être personnalisée. LI>
ul> Veuillez noter en C Il y a toutes les chaînes null résilisées, cela signifie la définition de par exemple. char s [] = "foo"; code> comprend implicitement un caractère null code> à l'extrémité s [3] = '\ 0' code>. p> Veuillez noter la différence de sous-sile entre char * s code> et char s [] code> qui pourrait souvent se comporter de même mais parfois pas! (Voir est un nom de tableau un pointeur? ) Par exemple: char utf8String[] = u8"Hello World";
Notez que cela devrait être
Const Char * Thisvar = "StringContHere"; Code> (const code>). Il existe une conversion impliciteconst code> -removing d'un littéral de chaîne surchar * code>, mais qui est obsolète et ne doit pas être utilisé.Notez également que
char * foo; code> définit une variable B> une variable (de typechar * code>) etchar * foo = "bar"; / Code> Définit et initialise B> une variable. Une déclaration b> seraitextern char * foo; code>. (Voir Stackoverflow.com/Questtions/1410563/1410632#1410632 pour sa définition et quelle est une déclaration.)Vous devez préciser si vous êtes également intéressé par C ++, car la balise C ++ ne trouve aucun avis dans la question ni le sujet.