2016.06.06 周一 C語言 將字符串根據字符的ASCII碼從大到小排序並打印出字符串中的字符類型的總數


第一次變量沖突問題 解決了一個多小時,。。。。

代碼如下: ↓

 

 

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

//************************輸入開始部分********************************
    printf("請輸入字符串。(長度在200以內)\n\n");
    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("\t%c\t是小寫字母\n",str1[i]);
                    lowLetters++;
                }
            else if(str1[i]>='A'&&str1[i]<='Z')
                {
                    printf("\t%c\t為大寫字母\n",str1[i]);
                    capLetters++;
                }
            else if(str1[i]>='0'&&str1[i]<='9')
                {
                    printf("\t%c\t為數字\n",str1[i]);
                    num++;
                }
            else if(str1[i]<=127)
                {
                    printf("\t%c\t為特殊字符\n",str1[i]);
                    speChar++;
                }
            i++;
        }



//***********************************統計總數部分**********************************
    printf("\n\n\t\t按照ASCII碼從大到小排列后的字符串為: %s\n",str2);
    printf("\n\n\t\t字符串長度為 %d \n",strlen(str1));
    printf("\t\t大寫字母共有 %d 個\n",capLetters);
    printf("\t\t小寫字母共有 %d 個\n",lowLetters);
    printf("\t\t特殊字符共有 %d 個\n",speChar);
    printf("\t\t數字共有 %d 個\n",num);
return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM