Sto provando a fare qualcosa di veramente semplice su C ma continuo a ricevere un errore di segmentazione. Tutto quello che voglio fare è sostituire una lettera di una parola con una lettera diversa - in questo esempio sostituire la l con una L. Qualcuno può aiutarti a spiegare dove ho sbagliato? Dovrebbe essere un problema molto semplice, penso, non ho idea del perché non funzioni.Sostituisci l'elemento di un singolo carattere di una stringa C
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
char *string1;
string1 = "hello";
printf("string1 %s\n", string1);
printf("string1[2] %c\n", string1[2]);
string1[2] = 'L';
printf("string1 %s\n", string1);
return 0;
}
Per la mia uscita ottengo
string1 ciao
string1 [2] l
colpa Segmentation
Grazie!
String1 è un puntatore alla memoria di sola lettura (nella maggior parte dei sistemi) poiché è un inizializzatore costante. Non puoi scrivere su quella stringa senza prima copiarla. – gaige