У меня есть строка данныхРазбор данных с использованием strtok
211L CRYST1 60.970 60.970 97.140 90.000 90.000 120.000 P 32 2 1 6
, что я хочу, чтобы разобрать в C. В частности, я хочу, чтобы извлечь P 32 2 1
в виде одной строки.
Когда я использую strtok использует все белое пространство как разделители давая мне обратно отдельные строки
P
32
2
1
Более краткая постановка вопроса:
Если у меня есть переменное число строк (4 в этом случае), как я могу объединить их в одну строку?
Мой код до сих пор:
while (fgets(line,sizeof line, PDBlist)!=NULL)
{
p=0;
pch=strtok(line,"\t");
sprintf(space[p],"%s",pch);
while(pch!=NULL){
pch=strtok(NULL," ");
p++;
sprintf(space[p],"%s",pch);
}
for(i=8;i<(p-1);i++){
if(i==(p-2))printf("%s\n",space[i]);
else printf("%s ",space[i]);
} }*
Можете ли вы опубликовать код, который у вас есть на данный момент? Это облегчит людям помощь. – hmjd
Любые конкретные ограничения на формат? Или вы можете использовать также подстроку (s, 143, 11)? –
Если формат входной строки является статическим, 'sscanf()' будет полезен и может с минимальными усилиями обеспечить уровень валидации (для 'float' и количество ожидаемых токенов). – hmjd