1. 程式人生 > 其它 >C語言 拼音轉漢字

C語言 拼音轉漢字

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#define N 100
void del_char(char a[],char c)
 {
      int i,j;
    for(i=0,j=0; *(a+i)!='\0'; i++)
    {
         if(*(a+i)>='a'&& *(a+i)<='z')
             continue
; else { *(a+j)=*(a+i); j++; } } *(a+j)='\0'; } int cishu(char *a,char *b) { int n=0; while(*a) { if(*a==*b) n++; a++; } return n; } char * retpinyin() { static char name[10]; srand((unsigned)time(NULL)); int iRange1 = 0xf7
- 0xb0; int iRange2 = 0xfe - 0xa1; char iCode1 = rand()%iRange1 + 0xb0; char iCode2 = rand()%iRange2 + 0xa1; char chh[3] = {iCode1,iCode2,0}; strcpy(name,chh); return name; } int StrReplace(char strRes[],char from[], char to[]) { int i,flag = 0; char *p,*q,*ts;
for(i = 0; strRes[i]; ++i) { if(strRes[i] == from[0]) { p = strRes + i; q = from; while(*q && (*p++ == *q++)); if(*q == '\0') { ts = (char *)malloc(strlen(strRes) + 1); strcpy(ts,p); strRes[i] = '\0'; strcat(strRes,to); strcat(strRes,ts); free(ts); flag = 1; } break; } } return flag; } int main() { int zongshu=0,zhengque=0,cuo=0; int zheng=0,bz=0; int a=0; FILE *fp; char str[N + 1],ch[2],ch1[20],ch2[20],chx[10],str1[N+1]; char * chh; char *p; //判斷檔案是否開啟失敗 if ( (fp = fopen("duizhao1.txt", "rt")) == NULL ) { puts("Fail to open file!"); exit(0); } while(1) { char str2[N+1]={0}; scanf("%s",&chx); if(strcmp(chx,"1")==0) break; while( fgets(str, N, fp) != NULL ) { //printf("%s\n",str); if(strstr(str,chx)!=0) { strcpy(str1,str); StrReplace(str1,"\n",""); //printf("%s\n",str1); del_char(str1,""); //printf("%s\n",str1); strcat(str2, str1); } } printf("%s\n",str2); rewind(fp); // fp回到開始位置 zongshu++; } fclose(fp); return 0; }