C++常用字符串操作函数,实现了字符串的分割,前向查找,去除空白等功能
//
// C++常用字符串操作函数的实现
//
//
//
//
// TODO: 等有空了又再补充其他的功能,当前的这几个
// @author norkts<norkts@gmail.com>
// @version 0.1 norkts 2015-04-17 实现了字符串的splits, indexOf, trim, startsWith
//
#include <iostream>
#include <vector>
#include <string>
using namespace std;
namespace norkts{
class StringUtil{
public:
StringUtil(string str){
this->str = str;
}
~StringUtil(){
}
/**
* 分割字符串.
*
* @param string split 分隔符
*/
vector<string> splits(string split){
return splits(str, split);
}
/**
* 返回数组长度 .
*
*/
int length(){
return str.length();
}
/**
* 去除多余的空格
*/
string trim(){
str = trim(str);
return str;
}
/**
* 查找字符串,返回第一个匹配的位置
*/
int indexOf(string search){
return indexOf(str, search);
}
/**
* 是不是以字符串开头
*/
bool startsWith(string search){
return startsWith(str, search);
}
string toString(){
return str;
}
public:
/**
* 同上功能的静态化
*/
static int indexOf(string str, string search){
bool match = false;
for(int i = 0; i < str.length() - search.length(); i++){
for(int j = 0; j < search.length(); j++){
if(search[j] != str[i + j]){
match = false;
break;
}else{
match = true;
}
}
if(match){
return i;
}
}
return -1;
}
/**
* 去除头尾以及连续空白字符合并为1个
*/
static string trim(string str){
while(str[0] == ' '){
memcpy((char *)str.c_str(), str.c_str() + 1, str.length());
}
while(str[str.length() - 1] == ' '){
memset((char *)(str.c_str() + str.length() - 1), '\0', 1);
}
for(int i = 1; i < str.length() - 1; i++){
while(str[i] == ' ' && str[i + 1] == ' '){
memcpy((char *)(str.c_str() + i + 1)
, (str.c_str() + i + 2), str.length() - i - 2);
}
}
return str;
}
/**
* 字符串分割
*/
static vector<string> splits(string str, string split){
char* buff = new char[100];
vector<string> vts;
int pos = 0;
int end = 0;
int slen = split.length();
string tempstr(str.c_str() + pos);
tempstr = trim(tempstr);
end = indexOf (tempstr, split);
while(end > -1){
memset(buff, '\0', 100);
memcpy(buff, tempstr.c_str(), end);
vts.push_back(buff);
cout << buff << endl;
tempstr = string(tempstr.c_str() + end + slen);
tempstr = trim(tempstr);
end = indexOf(tempstr, split);
if(end == -1){
vts.push_back(tempstr);
}
}
return vts;
}
/**
* 判断字符串是不是以search开头
*/
static bool startsWith(string str, string search){
return indexOf(str, search) == 0;
}
private:
string str;
};
};
using namespace norkts;
int main(){
StringUtil str(" driver=Firebird;Uid=SYSDBA; Pwd=masterkey;dbname=D:\\RXHOTEL.FDB; ");
vector<string> res = str.splits(";");
cout << res.size() << endl;
return 0;
}
分享到:
相关推荐
标题中的"C++字符串常用操作函数讲解"暗示我们将关注的是C++标准库中的`std::string`类及其相关函数。 在C++中,`std::string`类是C++标准库的一部分,它提供了一种方便的方式来处理和操作字符串。与C语言中的字符...
总的来说,这个"纯C++ 字符串处理函数大全源码"为C++开发者提供了一套实用的字符串操作工具,涵盖了字符串的分割、修剪、替换、合并等多种常见操作。通过引入这个库,开发者可以在自己的项目中快速高效地处理字符串...
C++ 字符串操作函数集合整理 本文将对 C++ 中的字符串操作函数进行整理,总结了多种字符串操作函数的用途、函数定义、返回值、附加说明和范例。 1. bcmp() - 比较内存内容 函数定义:`int bcmp(const void *s1, ...
C++常用字符串处理函数及使用示例
本文档总结了 C++ 语言中常用的字符串操作函数,包括字符串比较、拷贝、查找、清零等操作。这些函数都隶属于 `<string.h>` 头文件,提供了便捷的字符串处理方式。 bcmp函数 bcmp 函数用于比较两个内存区域的内容,...
整数转字符串函数 `Int_Char` ```c char* Int_Char(int n, char s[]) { int Tmp_n = n, Length = 0; while (Tmp_n >= 1) { Length++; Tmp_n /= 10; } for (int i = 0; i ; i++) { Tmp_n = n % 10; n /= ...
根据给定文件的信息,我们可以详细地探讨C++中的一些关键字符串处理函数,...以上就是从给定文件中提取出的C++字符串处理函数的详细解析,每个函数都有其特定用途,掌握它们能够极大地增强你在C++中处理字符串的能力。
在C++编程中,通过字符串调用函数是一种高级特性,通常涉及到函数指针、元编程或者更复杂的语言机制。这个示例代码可能演示了如何在运行时根据字符串内容找到并执行相应的函数。这种技术在某些场景下非常有用,比如...
5. **字符串的比较**:除了基本的比较操作,C++还提供了`compare`函数,可以进行更复杂的字符串比较,例如部分字符串的比较或忽略大小写的比较。这部分代码可能在`字符串的比较.cpp`中有所体现。 6. **字符串的拷贝...
C++ 字符串操作函数集合整理 在 C++ 编程语言中,字符串操作函数是非常重要的一部分。这些函数可以帮助我们高效地处理字符串,完成各种字符串操作任务。本文将对 C++ 字符串操作函数进行详细的整理和介绍。 1. ...
以下是一些常用的字符串处理函数的详细解释: 1. **stpcpy**: 这个函数用于将源字符串`source`复制到目标字符串`destin`中,函数返回的是目标字符串的结束字符的指针。这意味着它不仅拷贝了字符串,还自动添加了...
C++字符串分割源码,破解版VC助手,兼容多个windows版本
了解并熟练使用这些C++字符串函数,能让你在编写涉及字符串处理的代码时更加高效和安全。通过深入学习和实践,你将能够更好地应对各种字符串相关的编程挑战。在实际开发中,结合C++标准库提供的其他容器和算法,如`...
本篇将详细探讨如何使用C++实现字符串的倒序,以及相关的C++字符串操作知识。 首先,我们要理解C++中字符串的基本概念。在C++中,字符串通常由字符数组表示,可以使用`char`类型的数组或`std::string`类来处理。`...
今天,我们将对字符串操作函数大全进行讲解,包括字符串拷贝、字符串连接、字符串比较等多种操作。 字符串拷贝 在字符串操作中,字符串拷贝是最基本的一种操作。C 语言提供了多种字符串拷贝函数,例如 strdup、...
本文将详细解析两种常用的C++ `std::string`截取字符串的方法:`find`和`find_last_of`,以及如何结合使用它们来满足各种字符串处理需求。 1. `find`方法: `find`方法用于在字符串中查找指定子字符串`strSub`的第...
### C++字符串输入详解 在C++编程语言中,字符串处理是常见的需求之一,而C++提供了多种方式来处理字符串,其中最显著的区别在于传统的C风格字符串与C++的`std::string`类。本文旨在深入探讨C++中字符串输入的各种...
在这个“c++字符串操作”项目中,开发者可能利用了这些工具来实现对字符串的各种操作,如字符计数、搜索、比较和修改等。下面我们将详细探讨相关的知识点。 1. **std::string 类**:这是C++标准库中的一个类,用于...
学习了C++中的字符串加密解密后,可以进一步研究其他加密算法,如AES、RSA等,或者了解非对称加密和哈希函数等信息安全相关的概念和技术。此外,也可以尝试将加密解密技术应用到实际项目中,如网络通信的安全传输、...