如何在if语句中使用strcmp进行比较

Anamika Ana

我正在尝试创建一个从.ini文件读取数据的C程序。数据被读入一个名为buffer的变量。.ini文件中的数据如下所示:

 [key]
 title= A, H, D, F 

我的程序如下所示:

 LPCSTR ini = "C:\\conf.ini";
 char var[100];
 GetPrivateProfileString("key", "title", 0, var, 100, ini);
 char* buffer = strtok(var, ",");
 printf("The complete line is %s", var);

 buffer=strtok(NULL, ",");
 printf(buffer);

 while((buffer= strtok(NULL, ","))!=NULL)
     printf(buffer);

输出看起来像这样:

The complete line is A, H, D, F
A
H
D
F

现在,我要做的是将“缓冲区”中接收到的每个字母与字符“ A”进行比较,如果为真,则打印“是”,否则打印“否”。我尝试使用strcmp进行比较,但.exe文件停止运行。

if (strcmp(buffer, "A")==0)
    printf("Hello")
雷梅尔弗朗西斯科

这是我对您的代码所做的一些修复:

  • 我将strcmp()检查放在循环中,以便将从中提取的所有字符串strtok()都与进行相等性检查"A"

    分隔符之前的第一个字符串被提取到buffer,那么它继续从提取buffer直到NULL内部do-while循环。

  • 由于您ini文件的值具有以下格式,即逗号后的空格(", "),因此我将定界符从更改","", " (在逗号后添加空格)

    虽然这不会使检查平等太大的影响"A",因为A不会受到影响(因为它是价值的第一部分 A, H, D, F),检查逗号和空间之间,字母值(例如HDF将如果我们将使用"," (仅逗号)作为定界符,则会受到影响

修改后的代码

 #include <stdio.h>
 #include <windows.h>

 int main() {

       LPCSTR ini = "C:\\conf.ini";
       char var[100];
       GetPrivateProfileString("key", "title", NULL, var, sizeof var, ini);
       
       printf("The complete line is %s\n", var);
      
       // first piece of string (letter) before delimiter
       // changed delimiter from "," to ", "
       char* buffer = strtok(var, ", ");
       
       // exits if buffer is NULL
       if ( !buffer )
           return;

       do {  
           // prints the letter
           printf("%s", buffer);
           
           // checking if the extracted piece of code from var is equal with "A",  
           // prints either " Yes" or " No"
           ( !strcmp(buffer, "A") ) ? puts(" Yes") : puts(" No");

       // continues checking until NULL
       } while( buffer = strtok(NULL, ", ") );
 }

输出

The complete line is A, H, D, F
A Yes
H No
D No
F No

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在if语句中使用grep?

来自分类Dev

如何在if语句中使用REGEX

来自分类Dev

如何在if语句中使用UIActionSheet?

来自分类Dev

如何在if语句中使用OR?

来自分类Dev

如何在if语句中使用循环

来自分类Dev

如何在if语句中使用多个“not in”?

来自分类Dev

如何在pyhton的for语句中使用if

来自分类Dev

如何在“ if”语句中将列表与整数进行比较?Python

来自分类Dev

如何在AngularJS ng-if语句中使用“>”比较器

来自分类Dev

比较变量时如何在where语句中使用CASE和IN

来自分类Dev

如何在XQuery的“ let”语句中使用“ if语句”

来自分类Dev

SQL Server:如何在insert语句中使用if语句

来自分类Dev

如何在一条语句中使用Switch Map进行过滤和映射?

来自分类Dev

如何在Django模板的条件语句中使用字典中的值进行操作

来自分类Dev

在VBA的IF语句中,如何在Match语句中的2个部分文本中使用OR语句?

来自分类Dev

如何在使用JavaScript的if语句中使用按钮的ID

来自分类Dev

如何在SQL case语句中使用> =条件?

来自分类Dev

如何在VBA中的语句中使用WEEKNUM函数?

来自分类Dev

如何在switch语句中使用通配符?

来自分类Dev

如何在LINQ语句中使用扩展方法?

来自分类Dev

如何在nginx的“ if”语句中使用“或”运算符?

来自分类Dev

如何在if语句中使用Try-with-resources?

来自分类Dev

如何在CASE语句中使用REGEXP_LIKE?

来自分类Dev

如何在重写语句中使用nginx if的参数$ 1

来自分类Dev

如何在if语句中使用.length对象计数的答案?

来自分类Dev

如何在插入语句中使用子查询

来自分类Dev

R如何在if语句中使用grep

来自分类Dev

如何在import语句中使用参数?

来自分类Dev

如何在LINQ语句中使用DateTime.TryParseExact

Related 相关文章

  1. 1

    如何在if语句中使用grep?

  2. 2

    如何在if语句中使用REGEX

  3. 3

    如何在if语句中使用UIActionSheet?

  4. 4

    如何在if语句中使用OR?

  5. 5

    如何在if语句中使用循环

  6. 6

    如何在if语句中使用多个“not in”?

  7. 7

    如何在pyhton的for语句中使用if

  8. 8

    如何在“ if”语句中将列表与整数进行比较?Python

  9. 9

    如何在AngularJS ng-if语句中使用“>”比较器

  10. 10

    比较变量时如何在where语句中使用CASE和IN

  11. 11

    如何在XQuery的“ let”语句中使用“ if语句”

  12. 12

    SQL Server:如何在insert语句中使用if语句

  13. 13

    如何在一条语句中使用Switch Map进行过滤和映射?

  14. 14

    如何在Django模板的条件语句中使用字典中的值进行操作

  15. 15

    在VBA的IF语句中,如何在Match语句中的2个部分文本中使用OR语句?

  16. 16

    如何在使用JavaScript的if语句中使用按钮的ID

  17. 17

    如何在SQL case语句中使用> =条件?

  18. 18

    如何在VBA中的语句中使用WEEKNUM函数?

  19. 19

    如何在switch语句中使用通配符?

  20. 20

    如何在LINQ语句中使用扩展方法?

  21. 21

    如何在nginx的“ if”语句中使用“或”运算符?

  22. 22

    如何在if语句中使用Try-with-resources?

  23. 23

    如何在CASE语句中使用REGEXP_LIKE?

  24. 24

    如何在重写语句中使用nginx if的参数$ 1

  25. 25

    如何在if语句中使用.length对象计数的答案?

  26. 26

    如何在插入语句中使用子查询

  27. 27

    R如何在if语句中使用grep

  28. 28

    如何在import语句中使用参数?

  29. 29

    如何在LINQ语句中使用DateTime.TryParseExact

热门标签

归档