C/C++之string类小结

(1)C++字符串和C字符串的转换

         C++提供了三种方法可以将C++字符串转化为C字符串,分别是data(),c_str(),copy()成员函数来实现。

         1)data()是以字符数组的形式返回字符串内容,但并不添加‘\0’;

          2)c_str()生成一个const char*指针,指向一个空字符的数组,数组中的数据是临时的,当有一个改变这些数据的成员函数被调用时,数据就会失效(比如说调用c_str()之后字符串发生变化,则c_str()生成的指针指向的数据也会发生变化)

         3)copy(p,n,size_type_off=0)表明从string类型对象中至多复制n个字符到字符指针p指向的空间,默认指定位置开始(0),返回真正从对象中复制的字符。(p中一定要确保能够存储n个字符)。

(2)string和int类型的相互转换

          1)int类型转换为string类型

                  a)可以通过数据流借助缓冲区的概念

                  b)借助snprintf()函数

                  int snprintf(char*str,size_t size,const char*format,...);//后面主要的是可变参数,是一些变换的格式和对应需要变换的对象

                   功能:如果格式化字符长度小于size,则全部复制,并在末尾添‘\0’;如果大于size,则只复制其中的size-1,并在末尾添零;函数成功返回写入字符串的长度,失败返回负值;

          2)string类型转化成int类型

                 使用strtol(str to long),strtoll(str to long long),strtoul(str to unsigned long),strtoull(str to unsigned long long)函数

                 long int strtol(const char*nptr,char**endptr,int base);

                  实现字符串nptr根据base转换成各种类型;参数base的范围为2~36或0,如果参数指定为0,则会根据具体情况判断进制,如果前面的字符是0x则为16进制,如果是0则为八进制,否则为10进制;函数执行过程中会扫描参数nptr字符串,跳过前面的空格式串,直到遇上数字或正负号开始转换,遇到非法数字或字符串结束时结束转换endptr返回的是遇到不合条件返回的字符串,如果正常则为空

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值