将gchar与字符串进行比较

时间:2015-09-23 21:50:03

标签: c linux gtk

我正在使用以下代码将gchar中的字符串存储与从文件中读取的char数组进行比较:

while (fgets(line, sizeof line, config) != NULL)
  {
    printf("line content is %s",line+5);
    printf("size of comparison: %i\n",g_utf8_strlen(active_selection,-1));
    if (g_ascii_strncasecmp(line+5,active_selection,g_utf8_strlen(active_selection,-1)+1)==1)
    {
      printf("success \n\n");
    }
    else
      printf("failure\n");
  }

配置文件值为:

set "hello"
button "hello" "some text"
button "phone" "more text"
set "pmrs"
button "test" "test even more text"

printf()显示以下值:

  

line+5 =你好“   line+5(第二次迭代)= on“hello”
  active_selection =你好   g_utf8_strlen(active_selection,-1) = 5

我所期待的是第一次迭代(hello")会返回true 第二个会返回false(在"hello"上), 只考虑前5个字符进行比较。

显然事实并非如此,因为我总是执行else语句(我使用printf来测试)。

1 个答案:

答案 0 :(得分:1)

所有字符串比较函数在匹配时返回0。因此,您的if条件应检查0而不是1

https://developers.google.com/web/fundamentals/layouts/rwd-fundamentals/use-media-queries?hl=en#a-note-on-min-device-width

  

返回

     

如果字符串匹配则为0,如果s1<则为负值。 s2,或者是积极的   值s1> s2。