0

uchar の比較とコピー、基本的には 2 つの文字列で strcpy と strcmp を実行しようとしていますが、うまくいかないようです。

typedef unsigned char uchar; 
uchar a[20] = "name1";

  if(strcmp(a,"name1") == 0) 
  {    
      strcpy(a,"name2"); 
  }

この比較で if 条件に入るつもりはありません。

4

3 に答える 3

1

わたしにはできる。

$ 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
于 2013-01-18T19:50:45.660 に答える
1

次のリンクは、コードが完全に機能していることを示しています。エラーがここではなく他の場所にあるため、プログラムが投稿したコードに到達しないことをお勧めします。投稿されたコード スニペットの前にデバッグ ステートメントまたはブレークポイントを追加して、これが発生するかどうかを確認するか、少なくとも else ステートメントを追加してブール比較が失敗するかどうかを確認することをお勧めします。

http://codepad.org/XfKh2iuV

于 2013-01-18T19:46:58.837 に答える
0

インクルードを上に置きましたか?

#include <stdio.h>
#include <string.h>
于 2013-01-18T23:03:10.130 に答える