0

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

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

编辑:这是一个小例子:

这是我需要调用的函数:

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

这就是我的代码中的内容:

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

1 回答 1

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 ed,例如:

typedef unsigned char* uchar*
于 2013-03-18T18:24:04.243 回答