您的位置:首页 > 编程语言 > C语言/C++

[C/C++]字符串工具类(去除左右空格、左右换行符)

2017-10-25 20:57 3255 查看

持续完善中,欢迎留言补充

直接上代码

stringz.h
//
//  stringz.h
//  ftpz
//
//  Created by 胖胖的ALEX on 2017/10/25.
//
#ifndef STRINGZ_H
#define STRINGZ_H
#include <iostream>
#include <vector>

/* C++:去除左右空格 */
int trim_z(std::string& s);

/* C:去掉字符串首(左)空格函数  */
int ltrim_z(char* s);

/* C:去掉字符串尾(右)空格函数  */
int rtrim_z(char* s);

/* C:去掉字符串首尾空格函数  */
int trim_z(char* s);

/*  分割字符串
@pch 需要分割的字符串
@sp 分割符号,如:", : _ -"等
@return vector<char*>
例子:
pch="姓名:张三"; sp=":"
vector<char*> vec;
vec[0] = "姓名";
vec[1] = "张三";
*/
std::vector<char*> split_z(char* pch, char* sp);

/* 去掉右侧(一个或多个)换行符(\n)
*/
int rtrim_n_z(char* s);

/* 去掉左侧(一个或多个)换行符(\n)
*/
int ltrim_n_z(char* s);

/* 去掉左侧、右侧(一个或多个)换行符(\n)
*/
int trim_n_z(char* s);

#endif // !STRINGZ_H


stringz.cpp
//
//  stringz.cpp
//  ftpz
//
//  Created by 胖胖的ALEX on 2017/10/25.
//
#include "stdafx.h"
#include "stringz.h"

int trim_z(std::string& s)
{
if (s.empty())
{
return 0;
}
s.erase(0, s.find_first_not_of(" "));
s.erase(s.find_last_not_of(" ") + 1);

return 1;
}

int ltrim_z(char* s)
{
_strrev(s);
rtrim_z(s);
_strrev(s);
return 1;
}

int rtrim_z(char* s)
{
int s_len = strlen(s);
int x = 0;
for (int i = s_len - 1; i >= 0; i--)
{
if (i == s_len - 1 && s[i] == ' ')
{
s[i] = '\0';
break;
}
x = 1;
break;
}
if (x == 0)
rtrim_z(s);
return 1;
}

int trim_z(char* s)
{
rtrim_z(s);
ltrim_z(s);
return 1;
}

std::vector<char*> split_z(char* pch, char* sp)
{
pch = std::strtok(pch, sp);

std::vector<char*> vec;
int i = 0;
while (pch != NULL)
{
ltrim_z(pch);
vec.push_back(pch);
pch = strtok(NULL, sp);
i++;
}
return vec;
}

int rtrim_n_z(char* s)
{
int s_len = strlen(s);
int x = 0;
for (int i = s_len - 1; i >= 0; i--)
{
if (i == s_len - 1 && s[i] == '\n')
{
s[i] = '\0';
break;
}
x = 1;
break;
}
if (x == 0)
rtrim_n_z(s);
return 1;
}

int ltrim_n_z(char* s)
{
_strrev(s);
int s_len = strlen(s);
int x = 0;
for (int i = s_len - 1; i >= 0; i--)
{
if (i == s_len - 1 && s[i] == '\n')
{
s[i] = '\0';
break;
}
x = 1;
break;
}
_strrev(s);
if (x == 0)
ltrim_n_z(s);
return 1;
}

int trim_n_z(char* s)
{
rtrim_n_z(s);
ltrim_n_z(s);
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: