寫一個程序,將一個字元序列轉換為訊息(這個過程稱為解碼)
字元編碼有五種類型。每種字元編碼對應的消息如下所示
00→Happy
01→Surprise
100→Fear
1010→Anger
1011→Sad
範例:
輸入
Enter a sequence of bits:10111001010
輸出
Sad Fear Anger- #include<stdio.h>
- #include<stdlib.h>
- #include <string.h>
- int main() {
- char arr[100];
- printf("Enter a sequence of bits: ");
- scanf("%s", arr);
- int len=strlen(arr);
- int i=0;
- while(i<len+2)//最後一次判斷,可能實際只有剩2位,郤需判斷到4位,所以把陣列長度加2
- {
- if(arr[i]=='0'){//如果指針在0
- int j=i+1;//設定下一位的變數,可連續判斷2位
- if(arr[j]=='0'){//接著下一位也是0
- printf("Happy ");//00即Happy
- i+=2;//00有2位,所以指針移2位
- }
- else if(arr[j]=='1'){
- printf("Surprise ");//01即Surprise
- i+=2;//01有2位,所以指針移2位
- }
- }
- else if(arr[i]=='1'){//如果指針在1
- int j=i+1,k=i+2,p=i+3;//設定後3位的變數,可連續判斷3位
- if(arr[j]=='0'&& arr[k]=='0'){
- printf("Fear ");//100即Fear
- i+=3;//100有3位,所以指針移3位
- }
- else if(arr[j]=='0'&& arr[k]=='1' && arr[p]=='0' ){
- printf("Anger ");//1010即Anger
- i+=4;//1010有4位,所以指針移4位
- }
- else if(arr[j]=='0'&& arr[k]=='1' && arr[p]=='1' ){
- printf("Sad ");//1011即Sad
- i+=4;//1011有4位,所以指針移4位
- }
- }
- }
- return 0;
- }
複製代碼 |