第一次變量沖突問題 解決了一個多小時,。。。。
代碼如下: ↓
#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; }
