c++ string类型相关操作

1. 定义和初始化string对象

  • string s;

默认初始化,s是一个空字符串。

  • string s = “hello”;  或者string s(“hello”); 或者string s2(10, s1)拷贝s1的前10个字符到s2中。

s的内容是  “hello”

  • s.empty( ) 为空返回true。
  • s.size()返回字符个数。

    • 返回值是string::size_type类型的值,size_type属于unsigned类型,能够存放下任何string对象的大小,一般用unsigned,或者auto来保存。
  • s1+s2 相加,相连,  s1=s2 赋值,  s1==s2 判断相同,s1!=s2 判断不同,>,< 按字典顺序判断大小
    • 相加时,只能一个string类型和一个字面值相加,或者两个string类型对象相加,不能两个字面值相加,编译器无法识别。(字面值与string对象不是同一类型)
    • string s = “abc”+“def”;//错误的

2. 读取string对象

IO操作

cin>>s;  以空白为结束。因此如果输入hello world只能读入hello。可以cin>>s1>>s2; 输入两个。

读取未知数量的string对象,可以用:

       string s;
       while(cin >> s){
             //处理s
       }

  使用getline读取一整行(可以保留空格),getline函数的参数是一个输入流和一个string对象,直到遇到换行符。

while(getline(cin,s)){
     //处理s
}

3. 处理string对象

  • for循环处理:
for(auto c:s){ //实际上c是char类型
     //处理c
}eg:for(auto &c:s){     c = toupper(c);  //c是一个引用,因此赋值语句可以改变s的值}

或者使用下标运算符[ ] , 下标运算符接收的是unsighed类型的值。s[0],s[1]返回值是该位置上字符的引用,

  • 关于大小写和数字的常用方法:

isalpha(c) 字符是字母;isdigit(c)是数字;islower(c)是小写字母;isupper(c)是大写字母;isspace是空格;

toupper( c ) 转为大写字母;tolower(c)转为小写字母;

4. 搜索string

  • find函数,若找到,返回第一个匹配到的下标(string::size_type类型),

否则返回npos(npos是一个string::size_type类型, 并初始化为-1,表示任何string最大的可能大小)

string s(“hello”);

auto p = s.find("world"); //p这是=nops

  • 其他的find函数

s.rfind(args) 找到s中最后一次出现args的位置

s.find_first_of (args) 找到s中第一次出现args任何字符的位置

s.find_last_of (args) 找到s中最后一次出现args任何字符的位置

s.find_first_not_of (args) 找到s中第一次出现不属于args任何字符的位置

s.find_last_not_of (args) 找到s中最后一次出现不属于args任何字符的位置

(args中可以加上特定位置类似(c,pos),用来指定从哪里开始搜索)

eg: unsigned pos;

pos = s.find_first_of ( s1 );

if(pos!=nops){  // s中有s1中的字符 }

  • substr()方法,给出位置,返回子串

string s1 = s.substr(i);返回从i位置开始的子串

5. 数值转换

int i=123;

string s = to_string(i);    整数转换为string

double d = stod(s); 字符串转浮点数

原文地址:https://www.cnblogs.com/justwe-nancy/p/11604421.html

时间: 2024-12-19 14:02:24

c++ string类型相关操作的相关文章

一:redis 的string类型相关操作

*redis客户端中的使用: =============一种:string类型的方法================ 介绍:string是redis的最简单类型,一个key对应一个value,string类型是二进制安全的. redis的string可以包含任何数据,比如jpg图片或者序列化的对象 1:一个key只包含一个value值,当设置相同值时=会覆盖 设置值:set name leyangjun 获取值:get name 2:setnx:(会判断设置的值是否存在,不存在则设置) 设置ke

二:redis 的hash类型相关操作

=====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash特别适合对应存储对象,相较于将对象的每个字段存成单个string类型 将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象 0:hset *如果 key(就是hash表) 不存在,一个新的哈希表被创建并进行 HSET 操作 设置hash field为指定值,如果key不存在,则先创建

四:redis的sets类型相关操作(有序和无序集合)

================四五种(有序和无序集合):sets类型(就是集合)============= 一介绍:  set表示集合,添加是是随意添加的----->无序集合 set是集合,它是string类型的无序集合. set是通过hash table实现的,添加,删除和查找的复杂度都是0(1). 对集合我们可以取并集.交集.差集. 通过这写操作我们可以实现sns中的好友推荐和blog的tag功能 1:sadd 向名称key的set中添加元素(唯一的) 例:sadd myset1 one 

三:redis的List类型相关操作

==========================三种:List类型===================== 介绍:list类型及操作 list是一个链接表结果,只要功能是push,pop.获取一个范围的所有值等等, 操作key理解为链表的名字,redis的list类型其实就是一个每个子元素都是string类型的双向链表. 我们可以通过push.pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列 1:lpush: 在key对应list的头部添加字符串元素 (

Redis笔记-String类型及操作(二)

String类型及操作 String是简单的类型 ,一个Key对应一个Value. String类型是二进制安全的. Redis的String可以包含任何数据,比如jpg图片或者序列化的对象 Set 设置Key对应的值为String类型的value 例如:添加一个name=lijie的键值对 127.0.0.1:6379> set name lijie//获取值127.0.0.1:6379> get name//重复赋值,会被覆盖 setnx 设置key对应的值为String类型的value,

[redis] redis 对string类型数据操作

package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.List; /** * Created by Administrator on

Python--Demo5--布尔类型相关操作

布尔类型: 我们已经知道布尔类型只有两个值True和False 布尔类型的操作: 比较运算.逻辑运算:操作结果都是布尔值. 比较运算符: 完成比较运算需要知道,比较运算符.(== 等于)(!= 不等于)(> 大于) (<小于)(<= 小于等于)(>= 大于等于) 示例: >>> 33.0==33 True >>> 'hehe'=='hehe' True >>> 'HeHe'=='hehe' False >>>

String的相关操作总结

Java中的String与常量池 string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象. string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象

Swift String类型常规操作

去除string 首尾的空格var str = " Hello the world   "let whitespace = NSCharacterSet.whitespaceAndNewlineCharacterSet()str = str.stringByTrimmingCharactersInSet(whitespace)  如下图效果: 陆续添加中...