當前位置:首頁 » 編程語言 » c語言漢字查找
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言漢字查找

發布時間: 2022-01-17 19:10:13

⑴ 在c語言環境下檢索漢字文本程序

#include<iostream>
#include<numeric>
#include<fstream>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<algorithm>
#include<stack>
#include<queue>
#include<utility>
#include<sstream>
#include<iterator>
#include<map>
#include<windows.h>
using namespace std;
void display();
void password(int nu);
void jiequ();
void shuoming();
void main()
{
system("color 0e");
cout<<endl;
cout<<"小說文塊截取器"<<endl;
cout<<endl;
cout<<"程序自我檢測啟動!"<<endl;
cout<<endl;
cout<<"Checking.........."<<endl;
cout<<endl;
Sleep(3000);
cout<<"已確認無資料丟失,允許安全保護模塊介入........"<<endl;
Sleep(1000);
password(1);
}
void password(int nu)
{
system("cls");
cout<<endl;
if(4-nu==0)
{
cout<<endl;
cout<<"三次輸入錯誤,強制退出!!!"<<endl;
cout<<endl;
system("pause");
}else{
cout<<"請輸入程序啟動密碼(1q2w3e):"<<endl;
string PASSWORD;
cin>>PASSWORD;
if(PASSWORD=="1q2w3e")
{
display();
}else{
++nu;
cout<<endl;
cout<<"密碼錯誤!請重新輸入!!你還剩下"<<4-nu<<"次機會"<<endl;
cout<<endl;
system("pause");
password(nu);
}
}
}
void display()
{
system("cls");
cout<<endl;
cout<<"----小說文塊截取器 (MP4專用)----"<<endl;
cout<<endl;
cout<<"--------------------------------"<<endl;
cout<<endl<<endl;
cout<<" 1.開始截取"<<endl<<endl;
cout<<" 2.程序說明"<<endl<<endl;
cout<<" 3.退出程序"<<endl<<endl;
cout<<endl;
cout<<"---------------------------------"<<endl;
cout<<"請選擇:"<<flush;
string xuan;
cin>>xuan;
if(xuan!="1"&&xuan!="2"&&xuan!="3")
{
cout<<endl;
cout<<"不存在此選項!"<<endl;
system("pause");
display();
}else{
if(xuan=="1")
{
jiequ();
}
if(xuan=="2")
{
shuoming();
}
if(xuan=="3")
{
//退出模塊
}

}
}
void jiequ()
{
system("cls");
cout<<endl;
cout<<" 初用者必讀"<<endl;
cout<<endl;
cout<<"請先在小說(文章)里要開始截的地方做一個標志,再到結束截的地方做一個標志"<<endl;
cout<<endl;
cout<<"例如在小說開頭輸入一個AB,再到100章那裡開頭輸入BC,並將其保存,"<<endl;
cout<<endl;
cout<<"直接在標題那行添加!避免標志被忽略!"<<endl;
cout<<endl;
cout<<"程序將在全文中尋找這兩個標志,並將其括起並進行截取,"<<endl;
cout<<endl;
cout<<"程序不會對原文件進行任何修改,但為安全起見,還請先備份!"<<endl;
cout<<endl;
cout<<"本程序不接受任何中文輸入,請自行把文件名改為英文!"<<endl;
cout<<endl;
cout<<"本程序默認路徑為程序所在目錄路徑,使用者可把文件放在與本程序同一目錄,"<<endl;
cout<<endl;
cout<<"這樣輸入路徑處直接輸入文件名即可(切記要連後綴一起輸入)!"<<endl;
cout<<endl;
system("pause");
system("cls");
cout<<endl;
cout<<"截取模塊進入成功!"<<endl;
cout<<endl;
cout<<"請輸入開始標志:"<<endl;
string beg;
cin>>beg;
cout<<"請輸入結束標志:"<<endl;
string end;
cin>>end;
cout<<"請輸入要截取的源文件路徑(默認為當前程序目錄):"<<endl;
string way;
cin>>way;
cout<<"請輸入截取後的文件輸出路徑(默認為當前程序目錄):"<<endl;
string way_go_zhu;
cin>>way_go_zhu;
system("cls");
cout<<endl;
cout<<"開始標志為"<<beg<<endl;
cout<<"結束標志為"<<end<<endl;
cout<<endl;
cout<<endl;
cout<<"正在讀入資料..............."<<endl;
ifstream way_open(way.c_str());
if(!way_open)
{
cout<<endl;
cout<<"找不到文件!路徑錯誤!!!"<<endl;
cout<<endl;
cout<<"返回菜單............."<<endl;
cout<<endl;
system("pause");
system("cls");
display();
}else{
vector<string> word_save;
string word;
while(way_open>>word)
{
word_save.push_back(word);
}
cout<<"讀入完成."<<endl;
int kai=0,jieshu=0;
int kai_save=0,jieshu_save=0;
cout<<"正在進行截取.............."<<endl;
int OK=0;
for(vector<string>::iterator l=word_save.begin();l!=word_save.end();++l)
{
if(beg==(*l))
{
cout<<"已找到開始標志!"<<endl;
kai_save=kai;
++OK;
}
if(end==(*l))
{
cout<<"已找到結束標志!"<<endl;
jieshu_save=jieshu;
++OK;
}
++kai;
++jieshu;
}
if(OK!=2)
{
cout<<endl;
cout<<"無法找到開始(結束)標志,請檢查標志是否獨立存在,標志前後只能是空格!~"<<endl;
cout<<endl;
cout<<"請直接在題目或文章中添加標志保存即可!"<<endl;
cout<<endl;
cout<<"截取出現錯誤~~~~! 返回菜單............"<<endl;
cout<<endl;
system("pause");
display();
}else{
cout<<"截取完畢."<<endl;
cout<<endl;
ofstream zz(way_go_zhu.c_str());
cout<<endl;
cout<<"正在對文件進行資料注入............."<<endl;
int biao=0;
for(vector<string>::iterator a=word_save.begin();a!=word_save.end();++a)
{
if(biao>=kai_save&&biao<=jieshu_save)
{
zz<<*a<<endl;
}
++biao;
}
cout<<"資料注入完畢."<<endl;
cout<<"開始關閉數據流........"<<endl;
way_open.close();
way_open.clear();
zz.close();
zz.clear();
cout<<"數據流關閉完成."<<endl;
cout<<endl;
cout<<"返回菜單............"<<endl;
cout<<endl;
system("pause");
display();
}
}
}
void shuoming()
{
system("cls");
cout<<endl;
cout<<"本程序由蝦味千層糕獨立製作完成!"<<endl<<endl;
cout<<"蝦味千層糕QQ: 435952144"<<endl;
cout<<" 381426068"<<endl;
cout<<endl;
system("pause");
display();
}

⑵ C語言編程如何查找字元串中指定漢字

用數組比較方便,已兔字元為基準,前移兩個找到個數,後移三個找到顏色

⑶ C語言判斷漢字

#include<stdio.h>

intmain()

{inti;

unsignedchars[200];

scanf("%s",s);

for(i=0;s[i];i++)

if(s[i]>127)

{printf("漢字");

i++;

}

elseprintf("字母");

return0;

}

(3)c語言漢字查找擴展閱讀

C++利用漢字的ASCII編碼小於0的特性判斷漢字

//coding:utf-8

#include"stdio.h"

intmain()

{

constchar*str="ENG漢字測試ddd";

for(inti=0;str[i]!='';i++)

{

charch=str[i];

if(ch<0)

{

printf("Y");

i=i+2;

}

else

{

printf("N");

}

}

//Output:NNNYYYYNNN

return0;

}

⑷ c語言如何識別漢字字元

如果判斷一個位元組數組是否等於 「星期一」
可以用庫函數的 strcmp()進行比較。也可以 自己一個位元組一個位元組的 比較
如果判斷漢字的話 ,直接把這個位元組強轉為int 看其值是小於0的就是漢字

⑸ C語言實現漢字匹配查找 並替換

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
typedefstructlist
{
charname[10];
}FOUND;
intmain()
{
FOUNDaa[100];
strcpy(aa[0].name,"張三");
strcpy(aa[1].name,"李四");
strcpy(aa[2].name,"王五");
inti;
for(i=0;i<=2;i++)
{
printf("%d%s ",i+1,aa[i].name);
}
printf("請輸入你要替換的名字: ");
charas[10];
gets(as);
charsd[10];
printf("請輸入替換以後的名字: ");
gets(sd);
intk;
for(k=0;k<=2;k++)
{
if(strcmp(as,aa[k].name)==0)
{
strcpy(aa[k].name,sd);
break;
}
}
for(i=0;i<=2;i++)
{
printf("%d%s ",i+1,aa[i].name);
}
return0;
}

⑹ 求:在C語言環境下對漢字文本的檢索程序

對一個串要從頭跟蹤,設置一個邏輯的指針吧,遇到ASCII在128以上的字元時,指針向後移動兩位(作為整個漢字處理),遇到128以下字元,指針只移動一位(作為常規字元處理,如標點)。
#include "stdio.h"
#include "graphics.h"
#include <stdlib.h>
#include <math.h>
#include "fcntl.h"
#include <dos.h>
#include <alloc.h>
#include <bios.h>
#include <conio.h>
#include <string.h>

int handle;

int puthz(int x,int y,unsigned char *p,int Hsize,int Vsize,int color)
{
unsigned int i,c1,c2,f=0;
int i1,i2,i3,i4,i5;
long l;
unsigned char by[32];
while ((i=*p++)!=0) {
if (i>0xa0)
if (f==0) {
c1=(i+2-0xa0)*94;
f++;}
else {
c2=i-0xa0+c1-847;
f=0;
l=c2*32L;
lseek(handle,l,SEEK_SET);
read(handle,by,32);
for (i1=0;i1<16*Vsize;i1+=Vsize)
for(i2=0;i2<2;i2++)
for(i3=0;i3<8;i3++)
if (getbit(by[i1/Vsize*2+i2],7-i3))
for(i4=0;i4<Vsize;i4++)
for(i5=0;i5<Hsize;i5++)
putpixel(x+(i2*8+i3)*Hsize+i5,y+i1+i4,color);
x+=20*Vsize;
}
if (i==' ') x+=20;
}
}

int getbit(unsigned char c,int n)
{
return ((c>>n)&1);
}

int openhzk()
{
handle=open("cclib",O_RDWR|O_BINARY);
if (handle==-1) {
cputs("error on open cclib");
}
}



⑺ c語言如何取單個漢字

//一個漢字占兩個位元組,且第一個位元組第首位為1
#include<stdio.h>
#include<string.h>
intmain()
{
chara[]={"我是在在雷達百無一用奪"};
charb[3];
inti;
printf("len=%d ",strlen(a));
for(i=0;i<strlen(a);++i){
if(a[i]<0){
b[0]=a[i];
b[1]=a[i+1];
b[2]='';
printf("%s ",b);
++i;
}
}
return0;
}

⑻ C語言 中文 模糊查詢

字元串的匹配問題啊,用strstr(),strcmp(),strncmp()等函數可以達到你的目的

⑼ c語言文件內查找輸出漢字

#include <stdio.h>

main() {
char key[] = "110105";
FILE *fp;
char line[2][20];
fp=fopen("file.txt", "r");
while(!feof(fp)) {
fscanf(fp, "%s", line[0]);
fscanf(fp, "%s", line[1]);

if (strncmp(line[0], key, 6)==0) {
printf("Found String is %s", line[1]);
break;
}

}
fclose(fp);
return 0;
}

你自己再修改一下,把key[]="110105"改為從命令行輸入;
fp=fopen(...)加上打開失敗的判斷。

⑽ c語言中如何用字母去檢索漢字名稱 謝謝

這個實現起來很麻煩,不過方法還是有的,你可以定義一個字元數組,前面第一第二個元素存漢字,後面第三個元素存首字母,當然,也可以向文件裡面寫入一塊內容,包含漢字和首字母,如果考慮多音字的話,可以遍歷鏈表或者文件,程序是永遠沒有止盡的,沒有做不到,只有想不到這句話在編程中是最適合用的。