C++字符串处理

  1. string是类,不是数据类型。所有的string类都是以C-style字符串为基础的,C-style字符串是字符数组。
  字符编码类型有:单字节字符集-SBCS;多字节字符集-MBCS,包括两种字符类型-单字节字符(SBCS)和双字节字符(DBCS);Unicode,所有字符都使用两个字节编码。
  SBCS、DBCS编码的字符串都是用一个字节表示的0作为结束标志;Unicode用两个字节表示的0作为结束标志。
  2. 通常使用的数据类型char,为单字节字符集。奇怪的是双字节字符集也用char数据类型。Unicode字符串使用wchar_t数据类型。
  3. 对char进行处理的函数有: /* *strchr:在非空字符串string中查找字符c,返回的是指向string中第一个c的指针。 strstr:在非空字符串string中查找非空字符串strCharset,返回被查找串的指针 */ char *strchr( const char *string, int c ); char *strstr( const char *string, const char *strCharSet ); int c='r'; char string[]="the quick brown"; char *pdest=strchr(string,c); cout字符串比较,返回值字符串string的长度*/ size_t strlen( const char *string ); char buffer[61] = "How long am I?"; size_t len; len = strlen( buffer ); printf( "'%s' is %d characters long\n", buffer, len ); /*结果为14*/ 以上介绍了,对字符串(char类型数组)的处理函数。查找:strchar,strstr。复制:strcpy。比较:strcmp。追加:strcat。长度:strlen。
  这些函数都在string.h中申明,需要引用该头文件才能使用。
  4. 字符串(char数组)转换为数据 /* 将字符串转换为double(atof),integer(atoi,_atoi64),长整型(atol)。如果输入不能被转换,返回0;数据溢出,返回未定义。 */ double atof( const char *string ); int atoi( const char *string ); _int64 _atoi64( const char *string ); long atol( const char *string ); 这些函数被定义在stdlib.h中。
  5. 数据转换为字符串(字符数组) /*将integer转换为字符串. value为数字,str为转换后的结果,radix为基数,返回指向str的指针 */ char *_itoa(int value,char *str,int radix); char *_i64toa(_int64 value, char *str, int radix); /*将长整型转为字符串*/ char *_ltoa( long value, char *str, int radix ); /*将double转为字符串. value-被转换的数字,count-要存储的位数,dec-转后所得字符串中10进制的小数点所在位置,sign-0表示数字为正,其他为负。 返回值为指向所得字符串的指针 */ char *_ecvt( double value, int count, int *dec, int *sign ); int decimal, sign; char *buffer; int precision = 10; double source = 3.1415926535; buffer = _ecvt( source, precision, &decimal, &sign ); printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n", source, buffer, decimal, sign ); /**结果为:source: 3.1415926535 buffer: '3141592654' decimal: 1 sign: 0*/ 这些函数也定义在stdlib.h中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值