C++分割字符串和trim
来源:互联网 发布:u8用友软件 编辑:程序博客网 时间:2024/06/08 06:57
一. 使用strtok函数分割
原型:char *strtok(char *s, char *delim);
strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换,直到找遍整个字符串。
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
strtok在s中查找包含在delim中的字符并用NULL(‘\0’)来替换,直到找遍整个字符串。
返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
char str[] = "now # is # good # country";char delims[] = "#";char *result = NULL;result = strtok(str, delims);while( result != NULL ) { cout<<result<<"\t"; result = strtok( NULL, delims );}
二. 使用strstr函数分割
原型:extern char *strstr(char *str, char *needle);
功能:从字符串str中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
#include <stdio.h>#include <string.h>int ParseWordsByLine(char* str_line){ if(strlen(str_line) == 0) { return -1; } const char* needle=" "; char* buf = strstr(str_line, needle); while(buf != NULL) { buf[0]='\0'; if(strlen(str_line) > 0) { printf("%s\n", str_line); } str_line = buf + strlen(needle); buf = strstr(str_line, needle); } return 0;}int main() { char str[1024] = " abd re 43 s dc5 Ad "; ParseWordsByLine(str); return 0;}
三.string类型分割
vector<string> split(string str,string pattern){ string::size_type pos; vector<string> result; str += pattern; int size=str.size(); for(int i=0; i<size; i++) { pos=str.find(pattern,i); if((int)pos<size) { string s=str.substr(i,pos-i); result.push_back(s); i=pos+pattern.size()-1; } } return result;}
总结:strtok比较适合多个字符作分隔符(如按#;|分割)的场合,而strstr适合用字符串作分隔符的场合。
四.string去除首尾空白,trim
string trim(string &s){ if (s.empty())return s; s.erase(0,s.find_first_not_of(" ")); s.erase(s.find_last_not_of(" ") + 1); return s;}
0 0
- C++分割字符串和trim
- C字符串分割(strtok和strtok_r)
- c语言 字符串的拼接和分割
- 字符串分割(C/C++)
- C字符串分割
- C字符串分割
- C++MFC分割字符串
- 分割字符串(C版本)
- 字符串分割(C++)
- 字符串分割(C++)
- 字符串分割(C++)
- 字符串分割(C++)
- 字符串分割(C++)
- C字符串分割
- 字符串分割(C++)
- 字符串分割(C++)
- 常用字符串分割(C++)
- C语言字符串分割
- Swift --下一响应者
- 算法时间复杂度的符号
- Java核心技术(六) —— 接口
- 详情页JS特效:往下滚动时,侧边新闻随着固定显示
- eclipse提速03 - 禁用动画
- C++分割字符串和trim
- Unreal Engine 4 —— Pixel Depth Offset的使用心得
- 蓝桥杯历届-奇怪的数列
- js/jsp操作cookie的方法
- CentOS 6.3下Samba服务器的安装与配置
- java 集合框架-TreeSet练习
- JS逻辑运算符&&与||的妙用
- 网络请求工具类
- 链表——合并K个排序的链表