我有一个代码,在其中我获取了const unsigned char *的痕迹,并且遇到了以下错误: 错误:传递“ strlen”的参数1中的指针目标的签名不同[-Werror = pointer-sign] int dlzka = strlen(text); 和 注意:预期为“ const char *”,但参数的类型为“ const unsigned char *” extern size_t strlen(const char __ s) 所以我认为我可能必须将unsigned char 更改为char。这样的转换会那样工作吗?我必须使用大学指定的这种格式“ char * bit_decrypt(const unsigned char * text)”。
char* bit_decrypt(const unsigned char* text){
if(text == NULL){
return NULL;}
int dlzka = strlen(text);
char *dec = calloc(dlzka + 1, sizeof(char));
for(size_t i = 0; i < dlzka; i++){
dec[i] |= ((text[i] >> 4) & 15) ^ (text[i] & 15);
if(text[i] & 128){
dec[i] |= 64;}
if(text[i] & 64){
dec[i] |= 128;}
if(text[i] & 32){
dec[i] |= 16;}
if(text[i] & 16){
dec[i] |= 32;}}
return dec;}
像这样的工作会进行简单的转换吗?
char* temp;
temp = text;
i = strlen(temp);
非常感谢