Ceci obtient simplement chaque valeur delims d'un tableau de mots appelé inputArray
et passe au mot suivant après chaque boucle du temps.C++ enlève la valeur de la fin du caractère
chaque mot est appelé sub
. Le problème est qu'une fois qu'un mot avec un 's' est trouvé à la fin, je veux enlever le 's' et faire sub
= le nouveau mot.
Ma méthode actuelle transforme le sous-retour en une chaîne appelée stringTemp
, puis supprime le 's' et le retourne dans le caractère sub
.
char inputDelim[] = " ";
char* sub = strtok(InputArray, inputDelim);
while(sub)
{
//This sets up the ability to find if 's' is at the end of the word
int n = strlen(sub);
int v = n;
char *vw = &sub[0u];
v--;
/////////////////////
//The problem is here
/////////////////////
if(vw[v] == 's')
{
string stringTemp = string(sub);
stringTemp.erase(stringTemp.end() - 1);
sub = str.c_str();//This does not work. Can not convert const char* into char*
s = 1;
r = 1;
}
...lots more code...
sub = strtok(NULL, inputDelim);
}
est également utilisé dans le code pour différents moyens.
Quelqu'un peut-il aider à faire fonctionner cette méthode, OU me montrer une autre façon que je pourrais supprimer le «s» à la fin du sub
char?
Je ne devrais pas être aux prises avec cela, mais malheureusement je le suis.
Merci!
Comment savez-vous que cela ne fonctionne pas? Vous ne faites rien avec la valeur de 'sub'. – interjay
Vous remplacez immédiatement 'sub' de toute façon, avec' sub = strtok (NULL, inputDelim); 'donc ce n'est pas clair pour moi ce que vous essayez d'accomplir –
Le titre de votre question n'a absolument aucun sens! Il n'y a rien comme une fin de char. Les valeurs 'char' sont des entités indivisibles. (Restez loin de 'strtok()' BTW). – user0042