程式設計C 實驗五 題目五 一維動態陣列的應用(0293)
阿新 • • 發佈:2018-12-09
Time limit(ms): 1000
Memory limit(kb): 65535
Submission: 13295
Accepted: 5193
Accepted
Sample Input
輸入一數字,用其控制一個數組的長度,而後將陣列中的小寫字母轉換成大寫字母,大寫字母轉換成小寫字母,其餘字元不變。
Description連續輸入多個測試資料: 輸入的第一行為一個整數n,接下來有一個由n個字元組成的字串。 輸入0控制程式結束。
Input每一行輸出一組測試資料對應的結果,依次輸出轉換後的字串。
Output1 2 3 4 5 6 | 10 ASXZXCaz-+ 10 azsx90AZKJ 0 |
1 2 3 | asxzxcAZ-+ AZSX90azkj |
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *ptr_s,*ptr_q,c; int n; while(scanf("%d",&n) == 1 && n != 0) { getchar(); ptr_s = (char *)malloc(n + 1); //動態建立陣列 // gets(ptr_s); //棄用gets() fgets(ptr_s,n+1,stdin); ptr_q = ptr_s; while((c = *ptr_q) != '\0') { printf("%c",(c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ? c^0x20 :c); //採用異或運算可提高運算效率 ptr_q++; } printf("\n"); free(ptr_s); } return 0; }