64,642
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int csvsep(char *str, char **arr, int siz)
{
char *buf;
char *ptr;
char *end;
int num;
size_t len;
static char strnull[] = "NULL";
static char sep[] = "\",\"";
buf = str;
strcat(buf, sep + 1);
ptr = buf + 1;
num = 0;
while ((end = strstr(ptr, sep)) != NULL) {
*end = '\0';
len = strlen(ptr);
if (len > 0)
arr[num++] = ptr;
else
arr[num++] = strnull;
ptr = end + 3;
if (num >= siz)
break;
}
return num;
}
int main(int argc, char* argv[])
{
char str[1024]
= "\"123\",\"ab,cd\",\"GG\"GG\",\"你好\",\"100\",\"99987\",\"\",\"PPP\"";
int i, n;
char *arr[8];
n = csvsep(str, arr, sizeof(arr)/sizeof(arr[0]));
for (i = 0; i < n; i++)
printf("arr[%d]=[%s]\n", i, arr[i]);
return 0;
}