#include <stdio.h>
#include <stdlib.h>
int main(void)
{
//char s[6] = {'h','e','l','l','o','\0'};
char *s = "hello";
int i=0,m;
char temp;
int n = strlen(s);
//s[n] = '\0';
while (i<(n/2))
{
temp = *(s+i); //uses the null character as the temporary storage.
*(s+i) = *(s+n-i-1);
*(s+n-i-1) = temp;
i++;
}
printf("rev string = %s\n",s);
system("PAUSE");
return 0;
}
Nella compilazione l'errore è un errore di segmentazione (violazione di accesso). Si prega di dire che cosa è la differenza tra le due definizioni:Errore di segmentazione che inverte una stringa letterale
char s[6] = {'h','e','l','l','o','\0'};
char *s = "hello";
forse un titolo diverso? sebbene l'esempio sia il codice per invertire una stringa, la domanda effettiva riguarda la modifica di array e stringhe letterali – akf
Hai qualche motivo per cui non stai usando 'strrev()'? Inoltre, questo si interromperà con caratteri multi-byte. – Piskvor