C++三种常用的字符串总结

C++三种常用的字符串表示方法——string类
转载自https://www.cnblogs.com/fishsorry/p/3608822.html

//1.string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作
string str1;
getline(cin, str1);//字符串的行输入
cout << str1 << endl; 
cout<时返回1,<时返回-1,=时返回0
int flag;
flag = com.compare(str6);//比较两个字符串的大小,通过ASCII的相减得出! 
cout << flag << endl; 
flag = com.compare(6, 12, str6);//比较com字符串从6开始的12个字符组成的字符串与str6的大小 
cout << flag << endl;
flag = com.compare(6, 12, str6, 3, 5);//比较com字符串从6开始的12个字符组成的字符串与str6字符串从3开始的5个字符组成的字符串的大小 
cout << flag << endl; 
cout<>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test"
ostringstream os;
os<

关于c++builder的一些字符串总结
–转载自http://www.cppfans.com/cbknowledge/reference/strings/ansistring.asp#info

由于 AnsiStringT 的存在,让字符编码之间转换变得非常的容易了。
UNICODE (UTF-16) 和 ANSI 之间字符编码转换是自动的
UnicodeString u;
AnsiString s;
s = u; // UNICODE (UTF-16) 转 ANSI
u = s; // ANSI 转 UNICODE (UTF-16)

UTF-8 和 ANSI 之间字符编码转换是自动的
UTF8String u;
AnsiString s;
s = u; // UTF-8 转 ANSI
u = s; // ANSI 转 UTF-8

GBK, GB2312, BIG5 和 ANSI 之间字符编码也可以自动转换
AnsiStringT<936> gbk; // 大陆和新加坡简体中文和繁体中文都有
AnsiStringT<950> big5; // 港澳台的 BIG5 只有繁体中文
AnsiStringT<20936> gb2312; // 大陆的早期编码 GB2312 只有简体中文
AnsiString s; // 以上字符串之间可以随意互相赋值进行自动转码
s = gbk;
gbk = big5;
big5 = CHS2CHT(gb2312); // GB2312 和 BIG5 之间需要简体中文和繁体中文之间转换
……
C++ Builder 函数,整数和字符串之间的转换:
C++三种常用的字符串总结_第1张图片

例:利用 C++ Builder 自带的函数进行 16 进制转 10 进制。把编辑框 Edit1 里面的 16 进制数转为 10 进制,输出到编辑框 Edit2 里面

void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
int i = StrToInt(L"0x" + Edit1->Text);
Edit2->Text = IntToStr(i);
}
catch(Exception &e)
{
ShowMessage(L"转换失败,错误信息:\r\n" + e.Message);
}
}
运行结果:

如果 Edit1 里面输入 xyz,点击 Button1 按钮,会弹出错误提示:转换失败,错误信息:0xxyz is not a valid integer value.
如果 Edit1 里面输入 abcd,点击 Button1 按钮,Edit2 里面会输出 43981,即 16 进制的 abcd 转为了 10 进制的 43981

例:把二进制数字符串转为 10 进制数

void __fastcall TForm1::Button1Click(TObject *Sender)
{
UnicodeString s = Edit1->Text;
wchar_t *ep;
unsigned long i = wcstoul(s.c_str(), &ep, 2);

if(*ep)
ShowMessage(L"从这里开始无法转换:" + UnicodeString(ep));
else
Edit2->Text = i;
}
运行结果:

如果 Edit1 里面输入 101010,点击按钮 Button1,Edit2 里面输出 42,即二进制数据 101010 转为 10 进制等于 42,
如果 Edit1 里面输入 101023,点击按钮 Button1,会弹出错误提示:从这里开始无法转换:23

一些其他的转换:
1 UpperCase
  将指定的AnsiString字符串转换为大写形式,函数原型如下:
  AnsiString __fastcall UpperCase(const AnsiString S);
  2. LowerCase
  将指定的AnsiString字符串转换为小写形式,函数原型如下:
  AnsiString __fastcall LowerCase(const AnsiString S);
  3. CompareStr
  比较两个AnsiString字符串,函数原型如下:
  int __fastcall CompareStr(const AnsiString S1, const AnsiString S2);
  4. CompareText
  比较两个AnsiString字符串,函数原型如下:
  int __fastcall CompareText(const AnsiString S1, const AnsiString S2);
  5. StrLen
  返回字符串的长度,函数原型如下:
  Cardinal __fastcall StrLen(const char * Str);
  6. StrEnd
  返回字符串结尾指针,函数原型如下:
  char * __fastcall StrEnd(const char * Str);
  7. StrMove
  从源字符串向目的字符串拷贝指定数目的字符,函数原型如下:
  char * __fastcall StrMove(char * Dest, const char * Source, Cardinal Count);
  8. StrCopy
  将源字符串拷贝到目的字符串中,函数原型如下:
  char * __fastcall StrCopy(char * Dest, const char * Source);

你可能感兴趣的:(C++字符串)