[1] 按字符分割字符串
#include <stdio.h> #include <string.h> /* 以字符ch为界分离字符串s2为前后两部分 */ char *_string_parse(char *s1, char *s2, char ch) { while(*s2 == ch) s2++; while(*s2) { if (*s2 == ch) { while (*++s2 == ch); break; } *s1++ = *s2++; } *s1 = '/0'; return s2; } /* 按字符*ch将字符串s2分割成一个数组字符串 */ char **string_parse(char *s2, char *ch) { char **ccp; char *s1; char *cp = s2; int i = 0; while (strcmp(cp, "")) { cp = _string_parse(s1, cp, *ch); ccp[i] = strdup(s1); i++; } ccp[i] = strdup(""); return ccp; } /* 测试 */ int main() { char *ipc = "<<<<<<<abc<edfg<hijklmn"; char *cp = ipc; char *p; char str[100]; char *p2, *p3; char **aa; char *s1; int i = 0; char ch = '<'; aa = string_parse(ipc, &ch); for (; strcmp(aa[i], "") != 0; ++i) { printf("array string %s/n", aa[i]); } printf("%s/n", aa[0]); /* 还有点问题:1,程序现在还不能按字符串来分割字符串。2,程序还有个警告:Null pointer assignment */ return 0; }
[2] 解析配置文件*.ini中“key=value”的操作
[3] C语言字符串会在编译器自动拼接起来
printf("s = %s\n", "hello," " World"); [4]