我正在编写一个将文本传递给库函数的程序。 此函数要求text参数的类型为 unsigned char *。
那么如何正确地将String传递给该函数呢?我无法将现有的 char *转换为 unsigned char *并通过 strncpy <将新值写入 unsigned char *变量/ em>也没用。
编辑: 这是一个小例子:
这是我需要调用的函数:
int count (void *index, uchar *pattern, uint length, uint *numocc);
这就是我在代码中的内容:
count(index,?argv[2]?, length, numocc);
答案 0 :(得分:1)
您可以使用(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 unsigned char* uchar*