uchar の比較とコピー、基本的には 2 つの文字列で strcpy と strcmp を実行しようとしていますが、うまくいかないようです。
typedef unsigned char uchar;
uchar a[20] = "name1";
if(strcmp(a,"name1") == 0)
{
strcpy(a,"name2");
}
この比較で if 条件に入るつもりはありません。
わたしにはできる。
$ 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
次のリンクは、コードが完全に機能していることを示しています。エラーがここではなく他の場所にあるため、プログラムが投稿したコードに到達しないことをお勧めします。投稿されたコード スニペットの前にデバッグ ステートメントまたはブレークポイントを追加して、これが発生するかどうかを確認するか、少なくとも else ステートメントを追加してブール比較が失敗するかどうかを確認することをお勧めします。
インクルードを上に置きましたか?
#include <stdio.h>
#include <string.h>