Как изменить значение из буфера - назначение места только для чтения - PullRequest
0 голосов
/ 15 марта 2020

Как я могу изменить значение из GtkEntryBuffer? Сначала я пытаюсь получить текст из буфера ввода следующим образом:

const char *entry_text = gtk_entry_buffer_get_text(data);

после, я пытаюсь изменить значение в нижний регистр, если значение в верхнем регистре:)

if (entry_text[0] == 65) // if value 'A'
 // try modify to value 'a'
 gtk_entry_buffer_set_text(GTK_ENTRY_BUFFER(data), entry_text[0] += 32, -1);

, но с ошибкой: assignment of read-only location ‘*entry_text’ Что я делаю не так?

Полный пример:

void lower_button_clicked(GtkWidget *lowerbutton, gpointer data)
{
  const char *entry_text = gtk_entry_buffer_get_text(data);

  for (int i = 0; entry_text[i] != '\0'; i++) {
    if (entry_text[i] >= 65 && entry_text[i] <= 90)
      gtk_entry_buffer_set_text(GTK_ENTRY_BUFFER(data), entry_text[i] += 32, -1);
  }
}

Я знаю, что const не может изменить значение, но как я могу изменить значение из буфера и установить более новое с текстом в верхнем регистре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...