【NX二次开发 ——数据类型转换】
NX二次开发中常用的数据类型
在NX二次开发中,常用到的数据类型有NXString、string、const char*、Char*和Char[],在数据类型转换之前,我们最好能了解这些数据类型的意义
char[] 类型
char[] 是一个字符数组,在C语言中,由于不存在 “字符串” 这种数据类型,而字符串的本质也就是将一个个字符按照顺序串联起来;因而在C语言中实现字符串的功能通过将字符存入指定大小的字符数组中使用。
由于字符数组在使用前必须要指定空间大小,并且指定后长度固定,无法修改,这样给使用过程中带来了很多的麻烦,目前已经被渐渐舍弃。
char* 类型
与char[]相比,char *具有很多的优点,首先这两种数据类型都可以对应一个字符串,比如:
char * a=”string1”; //a是指向char变量的指针
char b[]=”string2”; // b则是一个char数组
有C语言基础的朋友都知道,a,b都是指向存放字符串的首地址,因而使用时用法一样。 但是由于a是一个变量,因而a的值可以发生改变,大小也可以改变。因此,char*慢慢取代了char[]。
const char* 类型
const char* 使用const限定的char*类型,这是指向常量的指针,比如:
const char*p = “string3”;
那么p的地址和值均不能被修改。const 限定的char*只可读,这样避免了用户在操作数据时不小心修改这个值。
string 类型
string是C++中的一个标准库类,可以表示可变长度的字符序列,其内部封装了庞大的操作函数和重写运算符,极大提高了程序员开发效率。
NXString 类型
NXString是NX定义的一种字符串类,其中包含了与C++字符串数据类型的接口函数。
NXString中的常用函数:
GetLocaleText() //返回本地支持编码模式的文本;返回值类型 const char*
GetText()//返回值用来初始化NXString对象,其余操作和string类似
NXstring和string转换
NXstring和string转换十分简单,直接赋值即可,例如:
NXOpen::NXString Name =“坚持、努力”;
string temp;
temp = Name.GetLocaleText();
NXstring和char*转换
由于GetLocaleText()的返回值是const char*类型,因而,需要强制类型转换,例如:
NXOpen::NXString Name ="坚持、努力";
char* Mid;
Mid = (char*)Name .GetLocaleText();
string和char*转换
string和char*转换的方法有好几种,下面介绍常用的一种,例如:
string temp = "坚持、努力";
char * Dion;
Dion = const_cast<char *>(temp.c_str()); // c_str()返回的类型为const char*,需要强制类型转换;
Dion = (char *)(temp.c_str()); //也可以实现
string和char[]转换
string和char*转换的方法有好几种,下面介绍比较方便的一种,例如:
char ch[];
string st="hello world";
strcpy(ch,st.c_str()); //string 到char[]