[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; }
相关文章推荐
- JAVA类,去除字符串中的空格、回车、换行符、制表符
- java去除字符串中的空格、回车、换行符、制表符
- java去除字符串中的空格、回车、换行符、制表符
- 字符串 去除 空格和换行符
- java去除字符串中的空格、回车、换行符、制表符
- java去除字符串中的空格、回车、换行符、制表符
- ExtJs 格式化字符串:去除行首、行尾空格、换行符
- 去除字符串左右两边的空格(实现代码)
- java去除字符串中的空格、回车、换行符、制表符
- Java去除字符串中的空格、回车、换行符、制表符 及 常用正则表达式
- sql 去除字符串的左右全角、半角空格
- 字符串中的空格去除问题,左空格,右空格,左右空格
- java去除字符串中的空格、回车、换行符、制表符
- javascript去除字符串左右两端的空格
- java去除字符串中的空格、回车、换行符、制表符
- C/C++ / string 字符串去掉左右空格
- JavaScript去除字符串左右的空格
- ExtJs 格式化字符串:去除行首、行尾空格、换行符
- java去除字符串中的空格、回车、换行符、制表符
- js去除字符串左右空格