gpt4 book ai didi

使用 String 创建变量以作为 uchar* 传递

转载 作者:行者123 更新时间:2023-11-30 15:50:56 26 4
gpt4 key购买 nike

我正在编写一个将文本传递给库函数的程序。此函数期望文本参数的类型为unsigned char*。

那么我怎样才能正确地将字符串传递给该函数呢?我无法将现有的 char* 转换为 unsigned char* 并通过 strncpy< 将新值写入 unsigned char* 变量/em> 也不起作用。

编辑:这是一个小例子:

这是我需要调用的函数:

int count (void *index, uchar *pattern, uint length, uint *numocc);

这是我的代码中的内容:

count(index,?argv[2]?, length, numocc);

最佳答案

您可以使用(unsigned char*)进行类型转换。我发布了一个小例子,可能会对您有所帮助(阅读评论):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void func(unsigned char* str){ // argument should be unsigned char*
printf("\n In side fun: %s\n", str);
}
int main(){
char* s = "your_name"; // s is char*
func((unsigned char*)s); // notice type casting
return 1;
}

它有效:

~$ gcc x.c  -Wall
~$ ./a.out

In side fun: your_name
~$

编辑:

count(index, (uchar*)argv[2], length, numocc);  
^ typecast (uchar*)

uchar* 可能是代码中的 typedef ed,例如:

typedef unsigned char* uchar*

关于使用 String 创建变量以作为 uchar* 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484001/

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