LINUX.ORG.RU

кодеры в ГТК хелп плиз


0

0

Посмотрите плиз на код ниже. Мне надо найте в тексте подстроку и в переменную pos засунуить этот текст, начиная с нужной строки(которую как раз надо ныйти). Проблема изложена в комментах: gchar *pos,tofind[]="",*gc; GtkTextIter start,end; sprintf(tofind,"-%d-",gi); //gi объявлена выше: gint gi=0; g_printf("=>%s\n\n",tofind); //печатает "-0-" gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(b),&start); //b - GtkTextBuffer *b. в нем текст, содержащий "-0-" gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(b),&end); gc=gtk_text_buffer_get_text(GTK_TEXT_BUFFER(b),&start,&end,TRUE); g_printf("=>%s\n\n",gc); //печатает нужный текст pos=strstr(gc,&tofind); printf("=>%s\n\n",pos); //печатает "=>(null)" - почему?

anonymous

 Have you ever heart about compiler warnings? Look at compiler output and
 see that you should replace

 pos = strstr (gc, &tofind);

 by

 pos = strstr (gc, tofind);

 Anyway,

 gchar tofind[]="";

 is worst way to do things, you probably should improve  your C expirience.

 Here is normal code.

 gchar *found_string;
 gchar *buffer_text;
 gchar *string_to_find;
 gint  gi = 0;

 GtkTreeIter start, end;
 GtkTextBuffer *b;

 gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(b),&start);
 gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(b),&end);
 buffer_text=gtk_text_buffer_get_text(GTK_TEXT_BUFFER(b),&start,&end,FASL
E);

 string_to_find = g_strdup_printf("-%d-", gi);
 found_string = g_strrstr(buffer, string_to_find);

 if (found_string)
   g_print("Found %s\n", found_string);
 else
   g_print("There is no string '%s' in text\n", string_to_find);

 g_free(string_to_find);



 Summary: zaebal.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.