c語言中文和ascii碼字元分離
歡迎大家對程式進行修改,程式還存在很多不足,如需要手動在字串尾加結束符,陣列長度不好控制從而浪費空間等。註釋寫的有點長,請大家見諒
程式如下:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "王愷123啊哈wang";
char str1[20], str2[20];
int i,j,k;
for(i = 0, j = 0,k = 0; i < strlen(str);++i)
{
if(0 != (str[i] >> 7)) //中文字元最高位為1,ascii碼最高位為0,
//因此將最高位數字左移7位,
//不等於0的是中文字元,
// 等於0的是ascii碼
{
str1[k] = str[i]; //將str中文字元第一個位元組
//放到str1的第一個位元組位置
++i;
k++;
str1[k] = str[i]; //將str中文字元第二個位元組
//放到str1的第二個位元組位置
k++;
}
else
{
str2[j] = str[i];
j++;
}
}
str1[k] = '\0'; //字串後面需要加結束符,
str2[j] = '\0';//否則用puts()輸出不會自動結束,會出現亂碼
puts(str1);
puts(str2);
return 0;
}
輸出結果如下:
相關文章
- C語言: 分類統計字元個數C語言字元
- c語言字元陣列C語言字元陣列
- 字元編碼發展史1 — ASCII和EASCII字元ASCII
- C++和c語言的分別C++C語言
- C語言sizeof()變數、字元、字串C語言變數字元字串
- 中文分詞研究難點-詞語劃分和語言規範中文分詞
- C語言——小白學習筆記(一些關於ASCII碼的小技巧以++ 和 --的用法)C語言筆記ASCII
- C語言基礎-2、字元型別C語言字元型別
- 1020:列印ASCII碼(C C++)ASCIIC++
- C++語言演算法之求任意兩個相同字元的最大距離C++演算法字元
- 聊聊C語言/C++—程式和程式語言C語言C++
- [20210422]如何檢視字元的ascii編碼.txt字元ASCII
- C語言計算輸入字元的個數C語言字元
- C語言:計算輸入字元的個數C語言字元
- 輸入一個ASCII碼,輸出對應的字元ASCII字元
- C 語言程式碼總結
- C/C++語言精髓 *和&詳解C++
- C語言/C++程式設計學習:和QT零距離接觸的意義C語言C++程式設計QT
- java語言邏輯類、引數類和字元類Java字元
- C語言貪吃蛇原始碼C語言原始碼
- C語言簡單程式碼程式C語言
- C++ 的指令碼語言:ChaiScriptC++指令碼AI
- 7-34 PTA C語言--求分數序列前N項和C語言
- 組合語言---判斷字元組合語言字元
- C語言巨集中"#"和"##"的用法C語言
- C語言 形參和實參C語言
- Python拆分列中文和 字元Python字元
- C語言C語言
- Laravel - 中文語言包Laravel
- 中文自然語言處理工具集:分詞,相似度匹配自然語言處理分詞
- C語言巨集和函式淺析C語言函式
- Python 和 C 語言學哪個更好?Python
- 帶讀 |《Go in Action》(中文:Go語言實戰) 語法和語言結構概覽(三)Go
- 帶讀 |《Go in Action》(中文:Go語言實戰)語法和語言結構概覽 (二)Go
- c語言的strlen函式計算字元陣列長度不對C語言函式字元陣列
- 計算機程式語言的分類,解釋型語言、編譯型語言、指令碼語言的關係計算機編譯指令碼
- UDP內網穿透和打洞原理的C語言程式碼實現UDP內網穿透C語言
- C語言:使用函式計算兩點間的距離C語言函式