字符串大写转小写

时间:2022-03-23 09:11:11


/*
功能:将输入的字符串中英文大写字母改成对应小写字母,并且过滤掉非英文字母字符
   
输入:字符串
   
输出:结果字符串,保证输出地址有效。
    
返回:0表示成功,其它返回-1

例如1:
输入:ABC
输出:abc
 
例如2:
输入:AbC
输出:abc
    
*/

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int  ProcessString(char * strInput,char *strOutput)
{
    int len=0;
    int i=0;
    int j=0;
    if(strInput == NULL|| strOutput == NULL)//输入参数有效性判断
    {
   	strOutput = NULL;
  	return -1;
    }
    len=strlen(strInput);
    for(i=0; i<len; i++) 
    {
        if(*(strInput+i)<'A' || *(strInput+i)>'Z' && *(strInput+i)<'a' || *(strInput+i)>'z')
        {
            continue; //过滤不符合条件的字符 ,j控制输出字符的存放位置
        }
        else
        {
            if(*(strInput+i)>='A' && *(strInput+i)<='Z')
            {
    		*(strOutput+j)=*(strInput+i)+32;  //大写改为小写
            }
            else
   	    {
     		*(strOutput+j)=*(strInput+i);   //小写直接存放
            }
   	j++;
        }
    }
    *(strOutput+j)='\0';
    printf("%s",strOutput);
    return 0;
}

void main()
{
 	char strInput[20]={"0"};
 	char strOutput[20]={"0"};
	printf("请输入你要的字符串:\n");
 	scanf_s("%s",strInput,20);
 	ProcessString(strInput,strOutput);
 	getchar();
 	getchar();
}