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

时间:2013-03-18 18:17:52

标签: c types

我正在编写一个将文本传递给库函数的程序。 此函数要求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);

1 个答案:

答案 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*