我正在尝试对两个字符串进行 uchar 比较和复制,基本上是 strcpy 和 strcmp,这似乎永远不会起作用。
typedef unsigned char uchar;
uchar a[20] = "name1";
if(strcmp(a,"name1") == 0)
{
strcpy(a,"name2");
}
我永远不会通过这种比较进入这个 if 条件。
以下链接显示您的代码运行良好。我建议您的错误不在此处,而是在其他地方,导致您的程序永远无法到达您发布的代码。我建议您在发布的代码片段之前添加一些调试语句或断点以查看是否发生这种情况,或者至少添加一条 else 语句以查看布尔比较是否失败。
这个对我有用。
$ cat test.c
#include <stdio.h>
#include <string.h>
typedef unsigned char uchar;
main()
{
uchar a[20] = "name1";
if(strcmp(a,"name1") == 0) {
printf("Hello\n");
}
}
$ gcc test.c
$ ./a.out
Hello
你把包含在上面吗?
#include <stdio.h>
#include <string.h>