<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      漢字編碼問題(OJ 2h奮戰血淚)

      image

      永遠想不到漢字的utf-8 gcc 編碼其實是三個字符,我是在云IDE發現的.....

      #include<bits/stdc++.h> 
      
      using namespace std;
      
      
      //A>K>Q>J>>10>9>...>3>2
      struct Card{
      	char name[10];
      	int color;
      	int number;
      	void change(){
      		if( strstr(name,"大王") ){
      			color=11;
      		}else if( strstr(name,"小王") ){
      			color=10;
      		}else if( strstr(name,"黑桃") ){
      			color=4;
      		}else if( strstr(name,"紅桃") ){
      			color=3;
      		}else if( strstr(name,"梅花") ){
      			color=2;
      		}else if( strstr(name,"方塊") ){
      			color=1;
      		}
              // printf("%s",name);
              // printf("::%d\n",strlen(name) );
              // for(int i=0;i<strlen(name);i++){
              //     printf("%d ",name[i]);
              // }
              // puts("");
      		switch (name[6]){
      		case 'A':{
      			number=23;
      			break;
      		}
      		case 'K':{
      			number=22;
      			break;
      		}
      		case 'Q':{
      			number=21;
      			break;
      		}
              case 'J':{
      			number=20;
      			break;
      		}
      		default:{
      			if(name[7]=='0')
      				number=10;
      			else 
      				number=name[6]-'0';
      			break;
      		}
      		}
      	}
      	bool operator<(const Card&x)const{
      		if(color!=x.color)
      		    return color>x.color;
      		else 
      			return number>x.number;
      	}
      }var[1000];
      
      signed main(void)
      {								
      	int  T;
      	scanf("%d",&T);
      	while(T--){
      		int n;
      		scanf("%d",&n);
      		for(int i=1;i<=n;i++){
      			scanf("%s",var[i].name);
      			var[i].change();
      		}
      		sort(var+1,var+1+n);
      		for(int i=1;i<=n;i++){
      			printf(" %s"+(i==1),var[i].name);
      		}
      		printf("\n");
      	}
      	return 0;
      }
      

      漢字編碼問題

      編碼就是把什么東西當作什么的問題,計算機善于處理數字,任何自然狀態下不能表示為數字的東西,都是難以直接處理的;若我們可以把那些東西都用數字表示出來,那就可以被計算機處理,享受計算機的帶來的便利;
      字符串在計算機內部主要是以末尾有\0char數組形式儲存;這個東西發源西方,對于中文,處理char的編譯器(gcc,clang)就不認識了,本質上是編譯器采取的utf-8編碼和GBK編碼(策略)不能把漢字處理成一個字面量;所以出現了unicode編碼去用一個'字符'(多個字節)去代表中文;
      C語言內部的Unicode就是wchar_t;
      在實驗的過程中可以發現漢字輸入進去之后是不止一個字符的,但也不一定是兩個字符,而且其char保存的數值還是負數,大概是當初ASCII碼編寫的是時候沒有留位置或者是需要當作unsigned char去處理;

      數據類型 編碼 size_t
      clang gcc
      char GBK 8 兩個 8 兩個
      char utf-8 (BOM)8兩個/12三個個 12三個
      wchar_t Unicode 一個 一個

      Unicode

      Unicode編碼不是char類型自然擁有的編碼,他需要用新的數據類型,在C語言內部就是wchar_t,那么也有相應的處理這個的函數,egwprintf() , wscanf
      轉換成Unicode:
      clang: utf-8(有bom) -> gbk -> Unicode
      gcc: utf-8(默認)->Unicode

      #include <stdio.h>
      #include <wchar.h>
      #include <locale.h>
      int main()
      {
          wchar_t a [] = L"ABCD";
          wchar_t b [] = L"\x41\x42\x43\x44";
      
          setlocale(LC_ALL, "");
          wprintf(L"a:%ls b:%ls", a, b);
          return 0;
      }
      

      printf()是根據格式控制符來解釋內存中的內容的,所以,當我們用 char*wchar_t * 時,格式控制就很重要了,不然一個 wchar_t* 直接作為 char * 來解釋或翻過來解釋,結果你可以想得到的,對吧;

      posted @ 2023-04-05 11:16  ZZQ323  閱讀(30)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 97午夜理论电影影院| 国产精品免费无遮挡无码永久视频| 国产一区二区三区禁18| 亚洲精品麻豆一二三区| 97se亚洲综合自在线| 久久亚洲国产欧洲精品一| 嫩草研究院久久久精品| 亚洲精品二区在线播放| 日本免费一区二区三区日本| 国产成人综合久久精品下载| 深田えいみ禁欲后被隔壁人妻| 免费看一区无码无a片www| 亚洲精品男男一区二区| 欧美在线观看www| 亚洲中文字幕无码中字| 亚洲AV日韩AV综合在线观看| 国产一卡2卡三卡4卡免费网站| 中国少妇无码专区| 国产精品久久777777| 国产精品亚洲二区在线看| 亚洲免费观看视频| 九九热在线精品视频观看| 中文字幕理伦午夜福利片| 影音先锋亚洲成aⅴ人在| 亚洲精品日韩久久精品| 国产一区二区在线有码| 高清欧美性猛交xxxx黑人猛交| a级亚洲片精品久久久久久久| 日韩精品卡一卡二卡三卡四 | 99久久精品美女高潮喷水| 一区二区三区无码免费看| 国产精品不卡一区二区久久| 一本色道国产在线观看二区| 国产一级片内射在线视频| 久久精品国产精品亚洲综合| 国产精品流白浆无遮挡 | 亚洲a免费| 国产精品综合av一区二区| 国产福利酱国产一区二区| 亚洲精品久久久久午夜福禁果tⅴ| 亚洲香蕉免费有线视频|