Étant donné une chaîne de caractères (en tant qu'argument de fonction), après une combinaison de caractères donnée, j'ai besoin de supprimer la séquence de zéros, si elle est sortie (uniquement pour modifier la chaîne). Par exemple, si la combinaison de caractères est x+
, la chaîne 20.301x+000005
doit être convertie en 20.301x+5
.Suppression de caractères de la chaîne C
J'ai essayé ceci:
void convertStr(char *analysisBuffer)
{
char *exp;
if((exp = strstr(analysisBuffer,"x+"))!=NULL||(exp = strstr(analysisBuffer,"X+"))!= NULL)
{
exp += 2;
char * zeroIt = exp;
while(*zeroIt == '0')
++zeroIt;
unsigned int x = exp - analysisBuffer;
analysisBuffer[x] = '\0';
strcat(analysisBuffer,zeroIt);
}
}
Quelqu'un peut-il me conseiller comment mettre en œuvre correctement?
'vous dire Avez-analysisBuffer [x] = '\ 0';' au lieu de 'analysisBuffer [0] = '\ 0';'? – tdk001
Pour réécrire votre exigence: Supprimez tout '0' qui se produit après une séquence donnée. Est-il nécessaire de modifier la chaîne ou une copie est-elle également autorisée? – pmr
only modify string – Yakov