【发布时间】:2021-05-10 01:51:13
【问题描述】:
char str1 [] =
"{ \'Carl Maria von Weber\', \'weber\', 8 }{ \' Maria von Carl Weber \', \'weber\', 1 }\n"
"{ \'Carl Weber Maria von\', \'weber\', 2 }\n"
"{ \'Carl-Maria von Weber\', \'weber\', 4 }\n"
"{ \'Chuck Norris\', \'norrischuck\', 100 }";
如果我有这样一个字符串,我该如何将它存储在字段中,所以我应该
char field [0] = Carl Maria von Weber
char field [1] = weber
char field [2] = 8
我创建了以下代码,该代码还在字段中存储 {} 字符。我可以在使用函数之前编辑字符串 str 以便字符 {},?被删除。或者我错了,你知道其他程序吗?
char *src;
char a[2000];
src=a;
fscanf(fp,"%[^\"]",src);
//printf("%s\n",src);
int count=1000;
char output[1000][1000];
int i = 0;
while (i < count) {
const char *start;
int len;
while (isspace((unsigned char)*src))
src++;
if (*src == '\0')
break;
if (*src == '\'') {
start = ++src;
len = strcspn(src, "\'");
src += len;
if (*src == '\'')
src++;
} else
if (*src == '\"') {
start = ++src;
len = strcspn(src, "\"");
src += len;
if (*src == '\"')
src++;
} else {
start = src;
len = strcspn(src, " \t\f\v\r\n");
src += len;
}
snprintf(output[i], sizeof(output[i]), "%.*s", len, start);
i++;
}
【问题讨论】:
标签: arrays c string function pointers