gpt4 book ai didi

c - 如何转换 char 数组以将其与 unsigned char 数组进行比较?

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:18 24 4
gpt4 key购买 nike

我正在尝试转换 s2 以使测试通过。

我将可打印字符与无符号字符值一起存储到 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();
}

最佳答案

在 C 中,不可能将字符串(或其他数组)与 == 进行比较。这是因为像 int myarray[8]; 这样的数组本质上可以是被认为是一个名为 myarray 的指针,用于存储 first 元素的地址。换句话说,== 将比较数组的起始地址,而不是所指向的实际数组项的内容

相反,您必须使用 strcmpmemcmp函数,或使用 for() 循环遍历每个索引并检查每个数组中的值是否匹配。

关于c - 如何转换 char 数组以将其与 unsigned char 数组进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com