第1个回答 推荐于2017-12-16
你可以用fgets()按行读取内容到 字符串变量里,然后处理。
假如已读入到 str[80] 里:
char str[80]="OR2_X2 C401 ( .A1(n66), .A2(n85), .ZN(N142) )";
多行这样的文字格式,
如果位置固定,可以直接读出:
char r[4][5];
sscanf(str,"%s",r[0]); r[0][3]='\0';printf("%s\n",r[0]);
sscanf(str+18,"%s",r[1]); r[1][2]='\0';printf("%s\n",r[1]);
sscanf(str+28,"%s",r[2]); r[2][3]='\0';printf("%s\n",r[2]);
sscanf(str+38,"%s",r[3]); r[3][4]='\0';printf("%s\n",r[3]);
------------------------
如果位置不固定,我们可以用查找 点号的位置加4:
int i,j,L[3];
j=0;
for (i=0;i<strlen(str);i++){
if (str[i]=='.'){L[j]=i+4; j++;}
}
sscanf(str,"%s",r[0]); r[0][3]='\0';printf("%s\n",r[0]);
sscanf(str+L[0],"%s",r[1]); r[1][2]='\0';printf("%s\n",r[1]);
sscanf(str+L[1],"%s",r[2]); r[2][3]='\0';printf("%s\n",r[2]);
sscanf(str+L[2],"%s",r[3]); r[3][4]='\0';printf("%s\n",r[3]);本回答被提问者采纳