在Python中,分割字符串:
str = "aaa,bbb,ccc,ddd"
arr = str.split(",")
print arr
python这个切割字符串特别好用,连长度都不用指定, 很方便,不用担心踩地雷,但是C/CPP中,就没有了,这点比较遗憾。
虽然标准的c库里没有,但是 glibc 这个强大的库里有一个 g_strsplit 很强大
gchar** g_strsplit (const gchar *string,
const gchar *delimiter,
gint max_tokens) G_GNUC_MALLOC;
第一个参数是字符串
第二个参数是分割符
第三个参数是最大分割大小,这个要小心了,如果选择过小,后面的就可能切割不了。
#include <stdio.h>
#include <glib.h>
int main(void) {
char *str = "aaa,bbb,ccc,ddd";
gchar **arr;
gint i;
arr = g_strsplit(str, ",", 2);
for (i = 0; arr[i] != NULL; i++)
g_print("%s\n", arr[i]);
}
gcc `pkg-config --cflags --libs glib-2.0` strsplit.c
./a.out
glibc 编译需要带上 lib库才能编译通过