问题:
给A,B文件中内容,写到C文件中,且A,B中内容只能是大写字母,若为小写,则变为大写。A,B的内容是从两个字符串获取的。C文件中内容需要从小到大排序;也就是在上一篇文章52的基础上,写个A文件和B文件,然后让他俩合并,弄到C里面。
思路:
代码如下:
#include
#include
int main()
{char a[100];char b[100];char c[100];gets(a);gets(b);FILE* fp=fopen("D:\\A","w"); //对A.B文件进行创建和写内容 FILE* np=fopen("D:\\B","w");if(fp==NULL||np==NULL){perror("fopen");return 1;}int sum_a=strlen(a);int sum_b=strlen(b);int q;int Bsum=0;for(q=0;q<=sum_b;q++){if(b[q]>='a'&&b[q]<='z'){b[q]=b[q]-32;fputc(b[q],np);Bsum++;//存进B的字符串长度 }}int i;int Asum=0;for(i=0;i<=sum_a;i++){if(a[i]>='a'&&a[i]<='z'){a[i]=a[i]-32;fputc(a[i],fp);Asum++;//存进A的字符串长度 } }fclose(fp); fp=NULL; fclose(np); np=NULL;//从A,B中读出内容,并且合并一个,随后写进C中 FILE* cp=fopen("D:\\C","w");//写C文件 fp=fopen("D:\\A","r"); //读A文件 np=fopen("D:\\B","r"); //读B文件 fgets(a,Asum+1,fp); //把A文件中内容读取到数组a中 fgets(b,Bsum+1,np); //把B文件中内容读取到数组b中 printf("%s\n",a);//a文件内容 printf("%s\n",b);//b文件内容 strcat(a,b); //给a、b合并,即把b中内容拼接到a中 int k,r; //拼接完成后,进行冒泡排序,字母小的排在前面 for(k=0;ka[r+1]){temp=a[r];a[r]=a[r+1];a[r+1]=temp;}}}//排序完成,把拼接排序好的数组内容,写入C文件中 fputs(a,cp);fclose(cp); fclose(fp);fclose(np);fp=NULL; np=NULL; cp=NULL;cp=fopen("D:\\C","r");//读取C文件 fgets(a,strlen(a)+1,cp); //给C中文件读取到a数组中 puts(a); //输出即可 fclose(cp);cp=NULL;return 0;
}