#include<stdio.h> #include<errno.h> #include<stdlib.h> #include<string.h> #defineNOTHING0 #defineLABEL1 voiddelblank(char*str); intmain(intargc,char*argv[]) { charch,temp[50],*chp; FILE*dest,*src; intflag=NOTHING; charlabel[10]; charsublabel[10]; if(argc!=3) { printf("Usage:transcateDest_pathSrc_path\n"); exit(EXIT_FAILURE); } if((src=fopen(argv[2],"r"))==NULL) { perror("Opensrcfile:"); exit(EXIT_FAILURE); } if((dest=fopen(argv[1],"w"))==NULL) { perror("Opendestfile:"); exit(EXIT_FAILURE); } while(fgets(temp,sizeof(temp)-1,src)) { if(temp[0]==';') { temp[strlen(temp)-1]='\0'; fprintf(dest,"<!--%s-->\n",temp+1); } elseif(!strcmp(temp,"\n")&&flag==LABEL) { delblank(temp); fprintf(dest,"</%s>\n\n",label); flag=NOTHING; } elseif(temp[0]=='['&&temp[strlen(temp)-2]==']') { flag=LABEL; delblank(temp); temp[strlen(temp)-2]='\0'; strcpy(label,temp+1); fprintf(dest,"<%s>\n",temp+1); } elseif(chp=strchr(temp,'=')) { delblank(temp); temp[strlen(temp)-1]='\0'; strncpy(sublabel,temp,chp-temp); sublabel[chp-temp]='\0'; fprintf(dest,"\t<%s>%s</%s>\n",sublabel,chp+1,sublabel); } } if(flag==LABEL) fprintf(dest,"</%s>\n",label); fclose(dest); fclose(src); return0; } voiddelblank(char*str) { inti=0,j=0; for(;i<strlen(str);i++,j++) { if(str[i]=='') i++; str[j]=str[i]; } str[j]='\0'; }
test.ini
;Configurationofhttp [http] domain=www.mysite.com port=8080 cgihome=/cgi-bin ;Configurationofdb [database] server=mysql user=myname password=toopendatabase
test.xml
<!--Configurationofhttp--> <http> <domain>www.mysite.com</domain> <port>8080</port> <cgihome>/cgi-bin</cgihome> </http> <!--Configurationofdb--> <database> <server>mysql</server> <user>myname</user> <password>toopendatabase</password> </database>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。