Je prends en entrée une chaîne avec des espaces et remplace les espaces par le caractère NULL '\ 0'. Quand j'imprime la chaîne maintenant, je m'attends seulement à ce que la partie soit le premier caractère NULL qui était le premier espace plus tôt mais j'obtiens la chaîne originale.Impression d'une chaîne contenant des caractères nuls
Voici le code-
#include<stdio.h>
int main(){
char a[1000];
int length, i = 0;
length = 0;
scanf("%[^\n]s", a);
while(a[i]!='\0')
i++;
length = i;
printf("Length:%d\n", length);
printf("Before:%s\n", a);
for(i=0;i<length;i++){
if(a[i] == " ")
a[i] = '\0';
}
printf("After:%s\n", a);
return 0;
}
Quel est le problème dans ce domaine?
'a [i] ==" « ' est pas le même que 'a [i] == ' « '. – DCoder
Et prenez l'habitude de compiler avec les informations de débogage et tous les avertissements activés. Si vous compilez sur Linux avec 'gcc -Wall -g' vous recevrez un avertissement pour vous aider à attraper votre erreur. –
@DCoder vous devriez publier cela comme une réponse. –