在做JNI的时候遇到了一个小问题,现在已经搞定,记录下来。

关于Java层传递下的string参数,在C语言中定义为jstring。但是C语言在使用的时候需要用到char类型,这里就出现了需要转换的情况 。

方法如下:

/*这里假设上层传递的参数都是准确有效的,这里只是在C中用*/

/*相关变量的定义如下*/

jstring jstr;

char *str;

char out_str[256];

/*使用GetStringUTFChars方法将jstr转换成char型的变量输出给str*/

str = (*env)->GetStringUTFChars(env,jstr,NULL);

/*将转换出来的str输出到数组中*/

strcpy(out_str,str);

/*这一步非常重要!!!*/

/*在保存了输出变量后,要进行ReleaseStringUTFChars操作来释放VM的内存,否则会出现内存溢出问题!!!*/

(*env)->ReleaseStringUTFChars(env,jfile,file);

/*至此,转换完成,最后的输出为out_str*/

jstring转换到C语言所用的char相关推荐

  1. char* 和jstring转换

    在平时的工作,经常用到jni和const类型转换. 调用例子: JNIEXPORT jstring JNICALL Java_com_powervision_videolib_jni_JniNativ ...

  2. c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...

    [原创]linux下编码转换问题,C语言实现,使用iconv函数族68 (2012-07-30 02:49:00) 标签: linux 68 c语言 杂谈 #include #include #inc ...

  3. c语言 格式转换函数,C语言中的格式转换函数.doc

    C语言中的格式转换函数 C语言中的格式转换函数 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过 ...

  4. UTF-8,Unicode,GB2312编码转换(C语言)

    UTF-8,Unicode,GB2312编码转换(C语言) 最近在做MQTT客户端的时候,遇到需要将输入的GB2312中文转换为UTF8的问题,这边做一个整理. UTF-8转GB2312 代码: /* ...

  5. C语言一级指针(char *)易错模型分析

    C语言一级指针char *易错模型分析 char *(字符串)做函数参数出错模型分析 越界 不断修改指针变量的值 你向外面传递什么 重复的错误何时休 char *(字符串)做函数参数出错模型分析 建立 ...

  6. C语言进制的格式字符,GB汉字文件转换成C语言Unicode十六进制字符串格式

    可以用在编程环境只能用GB,但程序中的汉字字符串需要用C语言的Unicode十六进制字符串格式表示.可以先在字符串中直接输入汉字,再用此程序转换. 源代码用C# //ascii & GB to ...

  7. 将数学公式转换成c语言表达式,习题参考答案

    c语言程序基础的答案 习题参考答案 第 1 章 1. a=%d,b=%d 2. [程序代码如下: ] #include int main( ) { printf(" *\n"); ...

  8. 关于C语言函数返回char *类型的一些问题

    @关于C语言函数返回char *类型的一些问题TOC 关于C语言函数返回char *类型的一些问题 以下是我在写C语言中返回值类型为char *函数时遇到的一些问题,在参考了博客:https://bl ...

  9. c 语言 uint8 转char,在C中的uint8和char之间的转换

    我有一个API来实现对EEPROM的写入操作.下面是它的声明:在C中的uint8和char之间的转换 CYBLE_API_RESULT_T CyBle_StoreAppData (uint8 * sr ...

最新文章

  1. python 异常操作 处理方法
  2. mysql8连接数据库显示cache_MySQL数据库之mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'...
  3. 避免人为灾难:盘点数据中心里十大愚蠢行为
  4. freecodecamp_我在1个月内完成了整个freeCodeCamp课程(并记录了所有内容)
  5. 后序遍历二叉树(迭代 vs 递归)
  6. MacBook高效优先设置,你都开启了吗?
  7. 编码之道:是谁制造了混乱
  8. Jupyter Notebook使用
  9. 颜晖c语言设计答案,c语言程序设计 (何钦铭 颜晖 著)课后习题答案
  10. power BI电商案例分析
  11. ssm mysql项目实战_ssm项目实战_ssm项目实战教程_ssm项目实战视频教程 _课课家
  12. 三维扫描用于3D打印技术
  13. 2018年,给自己加油!
  14. 基于UEBA的用户上网异常行为分析
  15. 新浪云python开发_python,flask,SAE(新浪云),搭建开发微信公众账号
  16. 江苏辖区农商银行2020年(科技类)
  17. Python+Django+Mysql开发在线美食推荐网 协同过滤推荐算法在美食网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智能开发
  18. http post请求
  19. 服务器代理设置与MIB信息获取实验报告,MIB浏览器的设计试验报告
  20. 冬令时和夏令时及国外时间处理

热门文章

  1. Druid、C3P0、Tomcat Pool的性能测试与选型
  2. HTML5 API 浏览器支持情况检测
  3. C/C++语言中Static的作用详述
  4. ASP.NET中实现二级或多级域名(修改UrlRewrite)
  5. NAT,PAT、OSPF的相关配置
  6. WebNN 人物检测、人脸识别、超分辨率、图像字幕、情感分析、噪声抑制
  7. 研发工程规范性模型-DevSecOps
  8. linux 安装_Linux安装JDK
  9. wordpress 表格文字对齐_不要再用空格来对齐Word文字了,这样做,3秒对齐所有Word文字...
  10. 史上最细IDEA搭建基于SSM(springmvc+spring+mybatis)