2016.06.06 周一 C语言 将字符串根据字符的ASCII码从大到小排序并打印出字符串中的字符类型的总数

第一次变量冲突问题 解决了一个多小时,。。。。

代码如下: ↓

#include<stdio.h>
#include<string.h>
#define N 200   //输入字符串的最大长度
int main()
{

//************************输入开始部分********************************
    printf("请输入字符串。(长度在200以内)

");
    int i=0,j,k,temp,lowLetters=0,capLetters=0,num=0,speChar=0;  //定义计数变量
    char str1[N],str2[N]; 
    gets(str1);    //接收键盘输入的字符串传递给str1数组





//***********************排序部分************************************
    strcpy(str2,str1);
    for(k=0;k<strlen(str2);k++)
        for(j=k+1;j<strlen(str2);j++)
        {
            if(str2[j]>str2[k])
            {
            temp=str2[k];
            str2[k]=str2[j];
            str2[j]=temp;
            }
        }




//************************判断类型部分*****************************
    while(str1[i])
        {
            if(str1[i]>='a'&&str1[i]<='z')
                {
                    printf("	%c	是小写字母
",str1[i]);
                    lowLetters++;
                }
            else if(str1[i]>='A'&&str1[i]<='Z')
                {
                    printf("	%c	为大写字母
",str1[i]);
                    capLetters++;
                }
            else if(str1[i]>='0'&&str1[i]<='9')
                {
                    printf("	%c	为数字
",str1[i]);
                    num++;
                }
            else if(str1[i]<=127)
                {
                    printf("	%c	为特殊字符
",str1[i]);
                    speChar++;
                }
            i++;
        }



//***********************************统计总数部分**********************************
    printf("

		按照ASCII码从大到小排列后的字符串为: %s
",str2);
    printf("

		字符串长度为 %d 
",strlen(str1));
    printf("		大写字母共有 %d 个
",capLetters);
    printf("		小写字母共有 %d 个
",lowLetters);
    printf("		特殊字符共有 %d 个
",speChar);
    printf("		数字共有 %d 个
",num);
return 0;
}
原文地址:https://www.cnblogs.com/BlmVac/p/5565519.html