回答
char charTime[] = "TIME"; char buf[] = "SOMETHINGELSE";
C++和Ç(对于C删除std::
):
bool equal = (std::strcmp(charTime, buf) == 0);
但真正的C++方式:
std::string charTime = "TIME", buf = "SOMETHINGELSE";
bool equal = (charTime == buf);
使用==
,因为它试图不工作比较每个数组的第一个字符的地址(显然,它们不相等)。它不会比较两个数组的内容。
在for循环中检查它们。获取每个字符的ASCII码,一旦他们改变他们不相等。
这是最简单的方法吗?必须是更好的东西? – rksprst 2010-03-13 23:12:49
有提到Johannes Schaub - litb的帖子。 – 2010-03-13 23:27:13
在C你可以使用的strcmp函数从string.h中,它如果他们是平等的
#include <string.h>
if(!strcmp(charTime, buf))
要检查身份charTime
和buf
返回0。要检查相等性,请循环一个数组中的每个字符,并将它们与另一个数组中的相关字符进行比较。
或使用strcmp ... – lajuette 2010-03-13 23:14:28
在使用==
的表达式中,char
数组的名称衰减为char*
,指向它们各自的数组的起点。然后根据指针本身的值执行比较,而不是数组的实际内容。
==
只会针对指向同一位置的两个指针返回true,否则返回false,即使它们指向具有相同内容的两个数组。
您需要的是标准库函数strcmp
。如果数组包含相同的内容(直到终止空字符,为了安全工作,这两个数组必须存在于这两个数组中),则此表达式的计算结果为true。
strcmp(charTime, buf) == 0
- 1. 比较两个char *平等
- 2. 比较平等
- 3. 比较float2s的平等/不平等
- 4. 在地图比较中使用平等
- 5. C++ :: toupper不允许平等比较吗?
- 6. C比较char和int
- 7. Char比较功能在C
- 8. GLSL分量平等比较
- 9. 比较两个xdocuments平等
- 10. 平等比较对象
- 11. Func NUnit平等比较
- 12. jsp。枚举比较/平等
- 13. 量角器:比较平等
- 14. 严格平等比较
- 15. C++比较为const char *到的std :: string
- 16. 比较Scala中的json平等
- 17. 比较平等的2个Properties对象
- 18. 比较两个目录的平等性
- 19. 的iOS迅速串不比较平等
- 20. 允许`boolean`和`Object`的平等比较?
- 21. 比较InnoDb和MyIsam MySql表的平等
- 22. 在C中的两个对象的平等比较#
- 23. 使用char值与c#中的变量名进行比较?
- 24. 如何字典比较平等的列表,在C#
- 25. const char *与==的比较
- 26. OpenERP的域:CHAR比较
- 27. 比较TCHAR []和的char []
- 28. 如何在C或C++中进行平等比较?
- 29. C++中char和unsigned char的按位比较
- 30. 比较varchar和char
btw:'char []'是一个不完整的类型。 'charTime'实际上是'char [5]'的类型,'buf'实际上是'char [14]'的类型。在这种情况下,编译器为我们计算完成类型。 – sellibitze 2010-03-14 06:27:18