字符串常用函数

在华为机考里面也记录了一点点

字符串常用函数_第1张图片

 

1.s.substr(pos,n) 返回一个string,c_str()

substr(pos,n) 返回从pos开始n个字符的拷贝

substr(pos) 返回从pos开始到结尾的拷贝

append(pos,n)

replace(pos,n,"") replace是erase和insert的组合

2.

3.memset()

4.c_str()注意使用的时候有风险,最好拷贝一份出来

字符串常用函数_第2张图片

5.将int,float类型等等转换为string类型

字符串常用函数_第3张图片

 

字符串常用函数_第4张图片

6.将string类型转换位数字

5.手撕split函数

#define _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_WARNINGS
#include"Chapter6.h"
#include
#include
#include
#include

using namespace std;

int main() {
	const char* c1 = "hello";
	const char* c2 = "world";
	char* r = new char[strlen(c1) + strlen(c2) + 1];
	cout << r << endl;

	strcpy(r, c1);
	strcat(r, c2);//连接c1,c2
	cout << r << endl;

	string s1 = "Hello";
	string s2 = "World";
	strcpy(r, (s1 + s2).c_str());//c_str将string转换为const char*
	cout << r << endl;
	return 0;
}


 

 

手撕split函数

下面的函数能够处理","的情况哈哈

	string line;
	getline(cin, line);

	vector m_vec;
	size_t pos = line.find_first_of(",");
	while (pos != std::string::npos) {
		string tmp = line.substr(0, pos);
		m_vec.push_back(tmp);
		line = line.substr(pos + 1);//从pos位置开始的单词
		pos = line.find_first_of(",");
	}
	m_vec.push_back(line);

后面看到手撕split的更加简洁的写法,借助了getline的函数,istringstream等

https://blog.csdn.net/MisterLing/article/details/51697098

 

 

find_first_of

可以直接自己手动解出来

int i = 0 ;

while( i < size && s[i]!='xxx'){

i++

}

 

字符串转整数

stoi(xxx);

你可能感兴趣的:(笔试题)