find()方法是C++中的一个字符串查找函数,用于在一个字符串中查找指定的子字符串,并返回第一次出现的位置。
该方法的语法如下:
size_t find (const string& str, size_t pos = 0) const;
参数说明:
返回值:
该方法的时间复杂度为O(n),其中n为字符串的长度。
应用场景:
腾讯云相关产品:
函数原型:char * strtok (char *str, char * delim);
相较于C,C++中引入了string类,这使得存储字符串时不易溢出,更加安全, 而其中包含的各种操作字符串的函数,使用起来更是方便。下面是其中几种常见的函数的使用方法:
例如:查找find,拷贝copy,删除delete 替换replace,插入insert
连接两个字符串中的不同字符。 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不同字符连接。 样例 给出 s1 = aacdb, s2 = gafd 返回 cbgf 给出 s1 = abcs, s2 = cxzca; 返回 bsxz c++11中规定字符串可以直接相加,字符串对象可以加字符串常量,可以加字符。 string::find()函数很好用,这里恰好可以做一个总结: 共有下面四种函数原型: 四种函数原型返回值都是size_t,即字符串的一个索引,如果找到返回索引,如果找不到返回-1,即string::npos,打印出来是:4294967295。直接用npos就可以了。
由于C++中没有split函数,因此,为了能够对获取的字符串进行按一定符号进行分割,在此学习了通过字符串的find()方法和substr()方法来实现split();具体描述如下: //涉及到string类的两个函数find和substr: // //1、find函数 //原型: size_t find(const string& str, size_t pos = 0) const; //功能: 查找子字符串第一次出现的位置。 //参数说明:str为子字符串,pos为初始查找位置。 //返回值: 找到的话返回第一次出现的位置,否则返回string::npos //2、substr函数 //原型: string substr(size_t pos = 0, size_t n = npos) const; //功能: 获得子字符串。 //参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos) //返回值: 子字符串
C风格字符串(以空字符结尾的字符数组)太过复杂难于掌握,不适合大程序的开发,所以C++标准库定义了一种string 类,定义在头文件。
-string是一个类,类内部封装了char*,是一个char型的容器。string类内部封装了很多成员函数,比如:查找find,拷贝copy,删除delete,替换replace,插入insert;string管理char所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
C++string的使用及模拟 零、前言 一、什么是string类 二、string类常用接口说明 1、string类对象常见构造 2、string类对象容量操作 3、string类对象访问及遍历操作 4、string类对象修改操作 5、string类非成员函数 三、模拟实现string类 1、实现string类接口展示 2、深浅拷贝问题 3、string类深拷贝写法 4、string类其他常用接口模拟 零、前言 本章主要讲解C++string类的相关知识以及使用,还会模拟实现一下string类 一、
首先定义两个string类型的变量a和b,getline()是string中的一个方法,从键盘读取一行。
string类提供了向前和向后遍历的迭代器iterator,迭代器提供了访问各个字符的语法,类似于指针操作,迭代器不检查范围。用string::iterator或string::const_iterator声明迭代器变量,const_iterator不允许改变迭代的内容。常用迭代器函数有:
C语言字符串是字符的数组。单字节字符串顺序存放各个字符串,并用'\0'来表示字符串结束。在C语言库函数中,有一系列针对字符串的处理函数,比如说strcpy()、sprintf()、stoi()等,只能用于单字节字符串,当然也有一些函数用于处理Unicode字符串,比如wcscpy()、swprintf()等
华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开。 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594
strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素 strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移
strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
string类对于处理字符串的一些应用非常的方便,我个人感觉,string和字符数组const char *很像,而且又比字符数组用起来方便的多。 注意其删除,取子串,插入等函数里面都有一个重载版本是使用偏移量来操作的,注意其默认值是不同的,erase和substr里面的默认值是偏移量为0,个数是npos,如果只填写一个参数的话,会传给偏移量,那么将对该偏移量及之后的所有字符操作。如str.erase(5)将删除偏移量5开始的npos个字符,即删除str[5]及之后的所有字符。而insert有两个使用偏移量
3
分为无参和带参这两种构造函数。无参构造函数默认构造空字符串"",所以我们只需要给一个缺省值即可。
cin 和 cout 比 printf 和 scanf 更加耗时,且不要再同一个程序中同时使用 cout 和 printf。
领取专属 10元无门槛券
手把手带您无忧上云