c语言分别输出文件中字符串的大写与小写字母!

如题所述

#include "stdio.h"

#include "string.h"

int main()

{

   FILE *fp;

   char str[100]={0};

   int i;

   

   if((fp=fopen("data.in","r"))==NULL)

   {

       printf("文件打开失败,可能需要的文件不存在!\n");

       return 1;

   }

   

   fscanf(fp,"%s",str);

   if(strlen(str)==0)

   {

        printf("文件中不包含有效的参数!\n");

        fclose(fp);

        return 2;

   }

   

   for(i=0;i<strlen(str);i++)

   {

          if(str[i]>='A' && str[i]<='Z')

              printf("%c ",str[i]);

   }

   

   for(i=0;i<strlen(str);i++)

   {

          if(str[i]>='a' && str[i]<='z')

              printf("%c ",str[i]);

   }

   

   printf("\n");

 

   fclose(fp);

 

   return 0;

   

 

}

结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-16
你那个文档里的输入和输出怎么不一样?大写转小写也不应该转换了字符给改变了吧,C#很好做,直接string s=字符串;然后string t=s.ToLower(); C语言的用法和C++差不多,大写和小写字符之间的ASCII码值相差,只要用一个循环定义i++;加上输出格式就可以了追问

不是大小写互转,只是把字符串中的大小写分别输出就行!同样感谢

第2个回答  2013-04-16

 

#include<stdio.h>

void main()

 FILE*fp;

 char buffer[100];

 int i;

 fp=fopen("in.bat","w");

 if(!fp) {return ;}

 scanf("%s",buffer);

 fprintf(fp,"%s",buffer);

 fclose(fp);

 fp=fopen("in.bat","r");

 fscanf(fp,"%s",buffer);

    i=0;

 while(buffer[i])

 {

  if(buffer[i]>='A' && buffer[i]<='Z') printf("%c ",buffer[i]);

  i++;

 }

  i=0;

 while(buffer[i])

 {

  if(buffer[i]>='a' && buffer[i]<='z') printf("%c ",buffer[i]); 

  i++;

 }

 

}

第3个回答  2021-05-29

C语言大小字母输出