Mat、uchar*、uchar[]之间的相互转换
Mat preImg = imread("9.jpg")
Mat dst = Mat(preImg.size, CV_8UC3, Scalar(255, 255, 255));
//uchar*给Mat转换数据的时候,需要先定义图片的大小
uchar* s = preImg.data; //Mat转uchar*
dst.data = s; //uchar*转Mat
char* t = (char*) s; //uchar* 转char*
char a[9]; //定义char[]数组
char* m = a; //char数组转char*
string str = m; //char* 转string
char* m = const_cast<char*>(str.c_str());//string转char*
char m[] = "string"; string str = m; //char数组转string
string str="213"; char m[]="hjkjdfas"; strncpy(m,str.c_str(), str.length()+1);//string转char数组
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *str1 = str; cout << str1 << endl; char *转char[]:字符拷贝实现,不能进行赋值操作 // char *转换为char [] const char *st = "hehe"; char st1[] = "lalalala"; strncpy(st1, st, strlen(st) + 1); // 注意加1操作 // tp = temp; //错误,不能实现 cout << st1 << endl; char 与const char 之间转换 const char 转char :拷贝实现,不能进行赋值 // const char *转char * const char *st = "lala"; // 直接赋值不可以 //char *st1 = st; // (不可以编译器报错) //cout << st1 << endl; // 另外开辟空间,将字符一个一个复制过去 char *ncstr = new char[strlen(st) + 1]; strcpy(ncstr, st); cout << ncstr << endl; char 转const char :直接进行赋值 // char *转const char * char *st = "hehe"; // (编译提示警告) const char *st1 = st; cout << st1 << endl; char *与string之间转换 char *转string:1)直接赋值;2)构造转换实现 // char*转换为string // (注意,定义char *变量,并直接赋值,最好定义为const变量,否则编译器警告) const char *st = "hello"; // 赋值转换 string st1 = st; cout << st1 << endl; // 构造转换 string s1(st, st + strlen(st)); cout << s1 << endl; // 改变const char *变量值 st = "lalala"; cout << st << endl; string转char *:赋值操作(注意类型转换) // string转char * string st = "My test"; //char *st1 = st; // 错误类型不同 //char *st1 = st.c_str(); // 错误类型不同 char *st1 = const_cast<char *>(st.c_str()) ; cout << st1 << endl; char[]与string之间转换 char []转string:1)直接赋值;2)构造转换实现 // char[]转换为string char st[] = "hello"; // 直接赋值实现 string st1 = st; cout << st1 << endl; // 构造实现 string st2(st, st + strlen(st)); cout << st2 << endl; string转char[]:拷贝实现,不能直接赋值 // string转char [] string ts = "My test1"; //char ts1[] = ts; // 错误 //char ts1[] = const_cast<char *>(ts.c_str()); // 错误 char ts1[] = "lalallalalaaaa"; strncpy(ts1, ts.c_str(), ts.length() + 1); // 注意,一定要加1,否则没有赋值'\0' cout << ts1 << endl; return 0; 总结 涉及到char []字符数组与其它类型转换,一般需要进行拷贝,不能直接赋值实现。char []和char *都可以通过构造新的string完成其对string的转换。涉及到到char *转换,需要注意类型一致,同时注意const的使用。
参考:https://blog.csdn.net/weixin_43081805/article/details/84347514?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
https://blog.csdn.net/yzhang6_10/article/details/51164300
原文地址:https://www.cnblogs.com/zhibei/p/13213563.html
- GET/POST/g和钩子函数(hook)
- cookie和session
- Python Flask模块
- Java直接内存与非直接内存性能测试
- Elasticsearch——multi termvectors的用法
- Elasticsearch增删改查 之 —— Delete删除
- Elasticsearch增删改查 之 —— Get查询
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示
- Elasticsearch入门必备——ES中的字段类型以及常用属性
- C++容器与算法
- Effective c++ 小结
- Java程序员的日常—— Properties文件的读写
- Java程序员的日常——经验贴(纯干货)二
- Elasticsearch——使用_cat查看Elasticsearch状态
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 神器 tmux 介绍
- Iterable、Sequece、Iterator、generator
- leetcode.1071. Greatest Common Divisor of Strings
- Python else与上下文管理器
- 深入分析iter()方法
- Python原地输出效果实现
- 每日一题:what is 文件描述符(FD)
- 每日一题:如何理解不定长参数
- 每日一题:协程相关
- 全方位了解协程概念
- leetcode MySQL 实现交换工资问题
- leetcode: explore-array-31 旋转矩阵
- Python 内置模块:logging 官方基础教程翻译
- leetcode: explore-array-21 从排序数组中删除重复项
- leetcode: explore-array-22 买卖股票的最佳时机 II