我正在尝试读取',."/()" " \n
分隔的字符串,直到EOF
。我只需要阅读单词和数字 - 稍后将被添加到树中。
输入文字的示例:
Luis Vaz de Camoes Os Lusiadas
Canto Primeiro
作为armas e os baroes assinalados,Que da ocidental praia Lusitana,Por mares nunca de antes navegados,Passaram ainda alem da Taprobana,Em perigos e guerras esforcados,Mais do que prometia a forca humana,E entre gente remota edificaram Novo Reino,que tanto sublimaram;
E tambem as memorias gloriosas Daqueles Reis,que foram dilatando A Fe,o Imperio,e as terras viciosas De africa e de asia andaram devastando; E aqueles,que por obras valerosas Se vao da lei da morte libertando; Cantando espalharei por toda parte,Se a tanto me ajudar o engenho e arte。
Cessem do sabio Grego e do Troiano As navegacoes grandes que fizeram; Cale-se de Alexandro e de Trajano A fama das vitorias que tiveram;阙 eu canto o peito ilustre Lusitano,A quem Neptuno e Marte obedeceram: Cesse tudo o que a Musa antigua canta,Que outro valor mais alto se alevanta。
E vos,Tagides minhas,pois criado Tendes em mim um novo engenho ardente,Se semper em verso humilde celebrado Foi de mim vosso rio alegremente,Dai-me agora um som alto e sublimado,Um estilo grandiloquo e corrente,Porque de vossas aguas,Febo ordene Que nao tenham inveja as de Hipoerene。
Dai-me uma furia grande e sonorosa,E nao de agreste avena ou frauta ruda,Mas de tuba canora e belicosa,Que o peito acende e a cor ao gesto muda; Dai-me igual canto aos feitos da famosa Gente vossa,que a Marte tanto ajuda;如果没有大学,Se tao 崇高的预科电视剧。
我需要读取单词和数字以将它们保存在树中。
答案 0 :(得分:0)
strtok
在这里应该是一个很大的帮助,这是使用您确定的大多数分隔符的示例:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="As armas e (os) baroes assinalados, Que da ocidental praia Lusitana. Por mares nunca de antes";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,"',.\"()\n ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, "',.\"()\n ");
}
return 0;
}