C++Build学习2

来源:互联网 发布:python for in循环 编辑:程序博客网 时间:2024/05/21 17:43
C++ Builder 中的字符串类型可分大概分为ANSI字符串与Null-Terminated字符串两类;
前者是C++Builder特有的字符串类型(和Delphi中的String类型是一样的),后者是C语言中惯用的以零字符作为字符串结束的类型。


C++ Builder 中的String字符串类型又分为字符串(AnsiString)、宽字符串(WideString)。




1、创建AnsiString 变量的方式
1)Buf = AnsiString();即为创建一个名为Buf的新字符串变量,且其内容为空的。
2)AnsiString(const char* src);使用字符指针src的内容创建一个String变量。
Sring Buf;
char *ch = "123456";
Buf = AnsiString(ch);
Buf的结果即使“123456”;原来的字符指针所指的内容已经被创建为一个AnsiString变量了。
3)AnsiString(const  AnsiString& src);
将另一个也是String 类型的变量复制一份成为另一个新的String类型变量。
4)AnsiString(const char* src,unsigned char len);
将使用字符指针src的内容创建一个长度为len的String变量。
String Buf;
char *ch = "123456";
Buf = AnsiString(ch,4);
Buf的结果即是“1234”,原来的字符指针所指的内容的长度为4的字符已经被创建为一个AnsiString变量了,超出的部分被剪掉。若长度大于原来的长度,则不足的长度会被补上空白。
5)AnsiString(int src);
将整数src转成一个String变量。
String Buf;
int src = 123;
Buf = AnsiString(src);
Buf字符串的内容就是“123”,数值123被转成字符串“123”


2、串行通信中常用的AnsiSting字符串处理函数
1)AnsiLastChar:
返回字符串中的最后一个字符,其类型是字符指针(char*)
String Buf;
char *ch;
Buf = "ABCDEF";
ch = Buf.AnsiLastChar();
ch的运算结果即为“F”
2)AnsiPos(const AnsiString&subStr):
返回在String字符串中的子字符串subStr的开始位置。
String Buf,subStr;
int len;
Buf = "ABC123456";
subStr = "34";
len = Buf.AnsiPos(subStr);
在Buf中subStr的开始位置,len的结果将返回6.
3)c_str():
将String类型的字符串转换为以零字符为结尾的(null-terminated)字符串。
String Buf;
char *str;
Buf = "ABC123456";
str = Buf.c_str();
4)data():
和c_str()函数一样,均是返回指针,不过,当原来的String类型变量的内容是空的,则此函数将返回NULL。
5)Delete(int index,int count):
将原字符串由第index位置开始删掉count个,其中的index由1开始算起。
String Buf,subStr;
Buf = "ABC123456";
subStr = Buf.Delete(4,3);
结果将会是 “ABC456”
6)FloatToStrF(long double value, TStringFloatFormat,int precision, int digits);
将数值value ,以format格式,precision 的位数及digits小数点位数进行转换,转换成String类型的变量。
TStringFloatFormat为一枚举类型,其原型是enum TStringFloatFormat{sffGeneral,sffExponent,sffFixed,sffNumber,sffCurrency};共有5种不同的数值转换选择。
String Buf,subStr;
float a;
a = 12.34;
Buf = Buf.FloattToStrF(a,0,7,3);
7)FormatFloat(const AnsiString& format, const long double& value);将一个数值依format的格式转换为字符串。
String Buf;
float a;
a = 12.34;
Buf = Buf.FormatFloat("0.000",a);
Buf最后的结果将会是“12.340”
8)Insert(const AnsiSting& str,int index):
将str字符串自原字符串的第index位置插入,返回一个新的字符串。
String Buf,subStr;
Buf = "ABC123";
subStr = Buf.Insert("ARE",4);
结果是“ABCARE123”
9)IntToHex(int value,int digits):
将数值value转换成十六进制数值字符串,且使用digits个字符。
String Buf;
int a;
a = 123;
Buf = Buf.IntToHex(a,2);
Buf将会变成字符串“7B”
String Buf;
int a;
Buf = "123ABC";
a = Buf.Length();


a的结果是6.
10)LowerCase():
此函数将返回一个新的字符串,该字符串将原字符串中的字符全部转换成小写。
11)Pos(const AnsiString& subStr):
返回在String字符串中的字符串subStr的开始位置。
12)StringOfChar(char ch,int count):
返回一个字符串,该字符串将字符ch填入count个
String Buf;
Buf = AnsiString::StringofChar(`A`,10);
Buf结果将会是含有10个A字符的字符串。
13)SubString(int index,int count);
String Buf,subStr;
Buf = "This is Tesst";
subStr = Buf.SubString(2,2);
结果是"hi"
14)ToDouble():将字符串转为浮点数。
15)ToInt():将字符串转化为整数
16)Trim():将字符串前后的空白去掉
17)TrimLeft():将字符串的左边空白去掉
18)UpperCase():此函数将返回一个新的字符串,该字符串将原字符串中的字符全部转换成大写。

0 0
原创粉丝点击