Вы получаете char
, потому что вы отменяете ссылку на указатель char*
.
Вы можете изменить содержимое, выполнив:
*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"
Но, изменив содержимоестроковый литерал имеет неопределенное поведение в C .Так что не стоит этого делать.Вместо этого вам нужно заполнить char*
динамически.Примерно так:
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
Манипулирование строками не так просто в таких языках, как C .Поскольку по синтаксису, который вы используете, вы, кажется, компилируете свой код с помощью C ++ компилятора, тогда вы можете попробовать string
class вместо использования указателей на char
для обработки ваших строк.1022 *