我正在試圖通過s2來使測試通過。如何將一個char數組與unsigned char數組進行比較?
我將可打印字符與無符號字符值一起存儲到s3中。
s2是一個測試字符串結果,旨在驗證可打印字符在s3中正確加載。
#include <stdio.h>
#include <string.h>
#define test_string_len 2
union {
char unsigned us[test_string_len];
char s1[test_string_len];
} result;
main() {
char *s2;
s2= "ab";
char unsigned s3[test_string_len];
s3[0] = 'a';
s3[1] = 'b';
s3[2] = '\0';
memcpy (result.us, s3, test_string_len);
if (result.s1 == s2) {
printf("Pass\n");
}
printf("s2 = %s\n", s2);
printf("s3 = %s\n", s3);
printf("result.s1 = %s\n", s3);
printf("result.us = %s\n", result.us);
getchar();
}
'test_string_len'應該是'3',你需要兩個字節的字符串以及末尾的空字符'\ 0'。這不是你的問題,但會讓你的代碼更加正確。 – Bert 2014-11-01 17:51:35
如果你只是試圖讓函數停止抱怨有符號和無符號字符的問題,那麼你可能正在尋找一個強制轉換'(char *)'而不是聯合。 – ooga 2014-11-01 18:21:37