1. 程式人生 > >Linux 處理中文字串 :/區分中文和英文的方法

Linux 處理中文字串 :/區分中文和英文的方法

#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>

int chinese_or_english(char *str,int len)  
{  
 // char *p=NULL;
 

  char chinese[4] = {0};  
  
  for (int i = 0; i < len; i++) {  
    
    if ((str[i] & 0x80) == 0) {   //chinese:the top is 1  
    
	  // printf("alpha:%c\n", str[i]);  
    }  
    
    else {  
      chinese[0] = str[i];  
      chinese[1] = str[i + 1];  
      chinese[2] = str[i + 2];  
      i++;    
      i++;
		
    printf("chinese:%s i is %d\n", chinese,i); 
	if(strcmp(chinese,":")==0 )
	{
		//p=str+i;
			printf("find >>>>>>>>>>>>>> chinese:%s i is %d\n", chinese,i); 
		return i;
	}	
		
	
	  
    }  
  }  
}  













int main()
{
	char buff_s[128]="我算出來了,等於:二";
	printf("buff_s len is [%d]\n",strlen(buff_s));
	//char p=buff_s;
	int i =0;
	
	
	char want_buffer[64]={"\0"};
	
	int n=0;
	char *r=NULL;
	n=chinese_or_english(buff_s,strlen(buff_s));
	
	int j=0;
	printf("n is %d\n",n);
	if(n !=0)
	{
		//r=chinese_or_english+n;
		
		for(i=n+1;i<strlen(buff_s);i++)
		{
			want_buffer[j]=buff_s[i];
			j++;
			printf("i is %d\n",i);
		}
	}
	//want_buffer[i]='\0';
	printf("want_buffer is %s\n",want_buffer);
	
	
	/*
	for(i=0;i<30;i++)
	{
		
		if(i%3==0 && i >0)
		{
			printf("%c%c%c\n",buff_s[i-1],buff_s[i],buff_s[i+1]);
			printf("\n");
		}
			
			
		printf("%x ",buff_s[i]);	
	}
*/
	
	
	/*
	while(p != ":")
	{
		printf("*p is %c\n",*p);
		p++;
	}
	
	
	printf("p====:,ps is %c%c\n",*p,*(p+1));
	
	
	
	char*temp = strtok(buff_s,":");
    while(temp)
    {
        printf("%s \n",temp);
        temp = strtok(NULL,":");
    }
	*/


    return 0;

}

相關推薦

Linux 處理中文字串 /區分中文英文方法

#include <stdio.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <wchar.h>

Linux數據庫MYSQL啟用查看二進制日誌

server mail etc 文件 查看表 rom 查看 日誌 stat 在/etc/my.cnf文件中【mysqld】下加上: server-id = 1 (在整個Mysql集群中保證唯一) log-bin = binlog log-bin-index = binl

【轉】編寫高質量代碼改善C#程序的157個建議——建議87區分WPFWinForm的線程模型

ons 拋出異常 ui線程 擴展方法 區分 cli inner 編寫 查看 建議87:區分WPF和WinForm的線程模型WPF和WinForm窗體應用程序都有一個要求,那就是UI元素(如Button、TextBox等)必須由創建它的那個線程進行更新。WinForm在這

Linux基本命令33su命令sudo服務

1 su命令 su命令可以解決切換使用者身份的需求,使得當前使用者在不退出登入的情況下,順暢地切換地切換到其他使用者,比如從root管理員切換至普通使用者: “-” 意味著完全切換到新的使用者,即把環境變數資訊也變更為新使用者的相應資訊,而不是保留原始的資訊。 從 root 管

java String中文字串轉陣列 中文字串分割成一定長度的字串分成幾個

java String中文字串分割成若干一定長度的字串 /** * 幾個字一組 變數控制 大於零有意義 */ int num = 6; /** * 待操作的字串 */ String str = "一二三四五六七一二三四五六七一二三四五六七一二三四五六七一二三四五六七

數字與字串倒序相互轉換

//原始碼已在VS2010編譯通過 #include <iostream> #include <sstream> #include <string> #includ

Linux啟動與程序前臺程序後臺程序

作業系統中,前臺程序和後臺程序有什麼區別?特徵是什麼? 後臺程式基本上不和使用者互動,優先級別稍微低一點 前臺的程式和使用者互動,需要較高的響應速度,優先級別稍微高一點 直接從後臺手工啟動一個程序用得比較少一些,除非是該程序甚為耗時,且使用者也不急著需要結果的時候。假

Linux核心移植 part4關於initrdinitramfs

一、initrd ram disk中的file system叫做initrd,全名叫做initial ramdisk。 注意: 當下用initrams多 如何建立initial ramisk host > dd if=/dev/ze

JS擷取字串slice(),substring()substr()

JS提供三個擷取字串的方法,分別是:slice(),substring()和substr(),它們都可以接受一個或兩個引數: 一個引數時,三個方法都表示從引數值所示的開始位置一直擷取到字串末尾. 兩個引數時, slice(),第一個引數代表開始位置,第二個引數代

linux記憶體管理2記憶體對映需求分頁(英文名字demand Paging,又叫缺頁中斷)

        圖 10-5 vm_area_struct 資料結構示意圖當可執行映象對映到程序的虛擬地址空間時,將產生一組 vm_area_struct 結構來描述虛擬記憶體區域的起始點和終止點,每個 vm_struct 結構代表可執行映象的一部分,可能是可執行程式碼,也可能是初始化的變數或未初始化的資料。

linux記憶體管理演算法 夥伴演算法slab

良好的作業系統效能部分依賴於作業系統有效管理資源的能力。在過去,堆記憶體管理器是實際的規範,但是其效能會受到記憶體碎片和記憶體回收需求的影響。現在,Linux® 核心使用了源自於 Solaris 的一種方法,但是這種方法在嵌入式系統中已經使用了很長時間了,它是將記憶體作為物件按照大小進行分配。本文將探索

Tomcat中文亂碼問題的原理解決方法(全面、詳細)

自從接觸Java和JSP以來,就不斷與Java的中文亂碼問題打交道,現在終於得到了徹底的解決,現將我們的解決心得與大家共享。 一、Java中文問題的由來 Java的核心和class檔案是基於unicode的,這使Java程式具有良好的跨平臺性,但也帶來了一些中文亂碼問題的麻

7靜態屬性靜態方法

在屬性或方法前面加 static 修飾,即可稱為靜態屬性/方法 普通屬性例項化之後放在例項物件上,靜態屬性則是放在類上; 可以不例項化類而直接訪問,不能通過一個類已例項化的物件訪問,直接使用類訪問:類名::$屬性名; 靜態屬性只能被初始化為直接量,不能使用表示式,不能

概率計數法則分配方法

管理者的決策往往是基於對不確定性的分析,比如: (1) 如果提高價格,則銷售量下降的可能性有多大? (2) 某種新的裝配方法將提高生產率的可能性有多大? (3) 某項工程將按期完成的可能性有多大? (4) 某項新投資盈利的可能性有多大? 概率是一個事件將會發生的可能性的數值度量。 試驗、計數法則和

linux中PATH環境變數的作用使用方法

關於PATH的作用: PATH說簡單點就是一個字串變數,當輸入命令的時候LINUX會去查詢PATH裡面記錄的路徑。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls這個命令根本不在這個兩個目錄下,事實上當你輸入命令的時候LINUX會去/bin,/us

《從0開始學架構》——高可用CAP理論FMEA方法

本系列是極客時間《從0開始學架構》的讀書筆記。 接下來就是高可用部分了。 一般來講,相對於高效能來說,高可用的複雜度更高,因為高可用的異常情況太多,只要稍有疏漏,就會埋下隱患。當然只是對一般情況而言。 對於高效能來講,有一種方法是採用叢集,來將海量請求分發到

5種建立型模式之簡單工廠工廠方法模式

以下為簡單工廠模式 簡單工廠模式解釋:         簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern),是通過專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。 簡單工廠

2017年深度學習優化演算法最新進展改進SGDAdam方法

2017年深度學習優化演算法最新進展:如何改進SGD和Adam方法 轉載的文章,把個人覺得比較好的摘錄了一下 AMSGrad 這個前期比sgd快,不能收斂到最優。 sgdr 餘弦退火的方案比較好 最近的一些研究(Dozat and Manning, 2017[13]、

PHP中文處理 中文字串擷取(mb_substr)獲取中文字串字數

一、中文擷取:mb_substr()  mb_substr( $str, $start, $length, $encoding )  $str,需要截斷的字串  $start,截斷開始處,起始處為0  $length,要擷取的字數  $encodin

自然語言處理學習3中文分句re.split(),jieba分詞詞頻統計FreqDist

1. 使用re.split() 分句,re.split(delimiter, text) import jieba import re # 輸入一個段落,分成句子,可使用split函式來實現 paragraph = "生活對我們任何人來說都不容易!我們必須努力,最重要的是