usted consigue una char
porque estás desindexación un puntero char*
.
podría cambiar el contenido haciendo:
*a = 'B'; // your char* would contain "Bbc"
a[0] = 'B'; // your char* would contain "Bbc"
a[1] = 'B'; // your char* would contain "ABc"
a[2] = 'B'; // your char* would contain "AbB"
embargo, cambiar el contenido de una cadena literal tiene un comportamiento indefinido en C. Entonces no deberías hacer eso. En su lugar, debe completar su char*
dinámicamente. Con algo como esto:
char *a;
a = malloc(sizeof(char)*100); // a string with a maximum of 99 chars
strcpy(a, "Abc");
// now you can safely change char* contents:
a[0] = '1';
a[1] = '1';
a[2] = '1';
printf("%s", a); // will print 111
manipulación de cadenas no es tan fácil en lenguajes como C . Dado que por la sintaxis que está utilizando, parece que está compilando su código con un compilador C++, entonces puede probar la clase string
en lugar de usar punteros a char
para manejar sus cadenas.
Tenga cuidado: cambiar los literales de las cadenas es un comportamiento indefinido - son const por una muy buena razón – Flexo