亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C實例---關鍵詞查找、替換算法

2019-11-10 17:04:34
字體:
來源:轉載
供稿:網友

運行環境:macOS shell 代碼:

#include <stdio.h>#include <string.h>#include <stdlib.h>#define ALL 1#define SINGLE 0int str2num(char *str); //字符串轉宏void Find(const char *src, char *argv, int Mode, int *position); //查找函數char *Replace(char *src, char *argv, char *replace, int Mode, int *position); //替換函數void atoA(char *src); //小寫轉大寫void PRintInfo(void); //打印提示信息void ArrayReverse(int *array); //數組倒置---冒泡實現int main (){ char string[1024] = "This year is Chinese new year---the year of the rooster, and happy new year to you!"; char keyWord[15] = {0}; char mode[10] = {0}, M[10] = {0}, replace[15] = {0}; int pos[10] = {0}; int i,count = 0; int len; int argvlen; PrintInfo(); printf("/n/nTest String :/n"); printf("%s/n/n", string); printf("Please input your find or repalce keyword : "); scanf("%[^/n]",keyword); getchar(); printf("Please chose the mode --- /"ALL or SINGLE/": "); scanf("%[^/n]",mode); atoA(mode); /* while input error, resume load up to correct. */ while ( (strcmp(mode, "ALL") != 0) && (strcmp(mode, "SINGLE") != 0) ) { printf("Line %d : Input Mode Error! Sample : all or ALL or single or SINGLE!/n", __LINE__); printf("Resume Mode : "); getchar(); scanf("%[^/n]",mode); atoA(mode); } printf("Debug %d : mode --- %s/n",__LINE__, mode); getchar(); printf("Please chose the mode --- /"FIND or REPLACE/" : "); scanf("%[^/n]",M); atoA(M);// printf("Debug %d : mode --- %s/n",__LINE__, mode); /* while input error, resume load up to correct. */ while ( (strcmp(M, "FIND") != 0) && (strcmp(M, "REPLACE") != 0) ) { printf("Line %d : Input Mode Error! Sample : find or FIND or replace or REPLACE!/n", __LINE__); printf("Resume Mode : "); getchar(); scanf("%[^/n]",M); atoA(M); }// printf("Debug %d : M --- %s/n",__LINE__, M);// printf("Debug %d : mode --- %s/n",__LINE__, mode); if (strcmp(M, "REPLACE") == 0) { printf("Please input your replace keyword : "); getchar(); scanf("%[^/n]",replace); }// printf("Debug %d : mode --- %s/n",__LINE__, mode);// printf("Debug %d : replace --- %s/n",__LINE__, replace); len = (int)strlen(string); argvlen = (int)strlen(keyword); Find(string, keyword, str2num(mode), pos); if (strcmp(M, "FIND") == 0) { for (i = 0; i < len; i ++) { if (pos[count] != -1 && pos[count] != -2 && i == pos[count]) { printf("/e[1;30;47m%s/e[m",keyword); i += argvlen - 1; count ++; } else { printf("%c",string[i]); } } printf("/n"); } else if (strcmp(M, "REPLACE") == 0) { count = 0; Replace(string, keyword, replace, str2num(mode), pos); len = (int)strlen(string); argvlen = (int)strlen(replace); for (i = 0; i < len; i ++) { if (pos[count] != -1 && pos[count] != -2 && i == pos[count]) { printf("/e[1;30;47m%s/e[m",replace); i += argvlen - 1; count ++; } else { printf("%c",string[i]); } } printf("/n"); } return 0;}void PrintInfo(void){ printf("******************************************/n"); printf("* Find and Repalce Test */n"); printf("* Sample : <KeyWord> <Mode> <M> */n"); printf("* Mode : ALL or SINGLE */n"); printf("* M : FIND or REPALCE */n"); printf("******************************************/n");}int str2num(char *str){ int num = 2; if (strcmp(str, "ALL") == 0) num = 1; else if (strcmp(str, "SINGLE") == 0) num = 0; return num;}void Find(const char *src, char *argv, int Mode, int *position){ int i,j,len,argvlen; int count = 0; len = (int)strlen(src); argvlen = (int)strlen(argv); switch(Mode) { case SINGLE: if (strstr(src, argv) != NULL) *position++ = (int)(strstr(src, argv) - src); else *position++ = -1; break; case ALL: for (i = 0; i < len; i ++) { if (src[i] == argv[0]) { for (j = 1; j < argvlen; j ++) { if (src[i+j] == argv[j]) { count ++; } } if (count == argvlen - 1) { *position++ = i; i += argvlen - 1; count = 0; } } } break; default: printf("Line %d : Mode Error! Sample : /"ALL or SINGLE!/"/n",__LINE__); exit(1); break; } *position ++ = -2;}char *Replace(char *src, char *argv, char *replace, int Mode, int *position){ char *p = src; int *posi = position; int len, argvlen,repalcelen,i,j,posm; len = (int)strlen(src); argvlen = (int)strlen(argv); repalcelen = (int)strlen(replace); switch(Mode) { case SINGLE: if (*position != -1 && *position != -2) { if (argvlen == repalcelen) { for (i = 0; i < argvlen; i ++) { src[(*position) + i] = replace[i]; } } else if (argvlen > repalcelen) { posm = argvlen - repalcelen - 1; for (i = 0; i < repalcelen; i ++) { src[(*position) + i] = replace[i]; for (j = *position + repalcelen; src[j]; j ++) { src[j] = src[j + posm]; } } } else { posm = repalcelen - argvlen; len = (int)strlen(src); for (i = len; i >= *position; i --) src[i + posm] = src[i]; for (i = 0; i < repalcelen; i ++) src[(*position) + i] = replace[i]; } } else { printf("Line %d : No keyword to repalce!!/n",__LINE__); } break; case ALL: if (*position != -1 && *position != -2) { if (argvlen == repalcelen) { while(*position != -2) { for (i = 0; i < argvlen; i ++) { src[(*position) + i] = replace[i]; } position ++; } } else if (argvlen > repalcelen) { ArrayReverse(position); for (i = 0; i < 6; i ++) printf("%d ", position[i]); printf("/n"); posm = argvlen - repalcelen - 1; while (*position != -2) { for (i = 0; i < repalcelen; i ++) { src[(*position) + i] = replace[i]; for (j = *position + repalcelen; src[j]; j ++) { src[j] = src[j + posm]; } } position ++; } } else { posm = repalcelen - argvlen; ArrayReverse(position); while (*position != -2) { len = (int)strlen(src); for (i = len; i >= *position; i --) src[i + posm] = src[i]; for (i = 0; i < repalcelen; i ++) src[(*position) + i] = replace[i]; position ++; } } } else { printf("Line %d : No keyword to repalce!!/n",__LINE__); } break; default: printf("Line %d : Mode Error! Sample : /"ALL or SINGLE!/"/n", __LINE__); exit(1); break; } Find(src, replace, Mode, posi); return p;}/*小寫字符轉大寫字符*/void atoA(char *src){ while (*src != '/0') { if (*src >= 'a' && *src <= 'z') *src -= 32; src ++; }}void ArrayReverse(int *array){ int count = 0,i,j,tmp; while (array[count] != -2) count ++; for (i = count; i >= 0; i --) { for (j = 0; j < i-1; j ++) { tmp = array[j]; array[j]= array[j+1]; array[j+1] = tmp; } }}

運行結果: 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述


上一篇:藍橋杯之六角填數

下一篇:線性表

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色婷婷av一区二区三区久久| 午夜精品一区二区三区在线视频| 国产精品777| 爽爽爽爽爽爽爽成人免费观看| 精品国产91乱高清在线观看| 亚洲毛片在线观看| 在线精品播放av| xxxx欧美18另类的高清| 精品中文字幕在线| 成人做爽爽免费视频| 欧美激情精品久久久久久黑人| 国产精品久久久久久亚洲影视| 精品香蕉一区二区三区| 久久国产精品久久久久| 国精产品一区一区三区有限在线| 国产精品国语对白| 欧美激情成人在线视频| 欧美精品videosex牲欧美| 日韩av免费网站| 欧美成人亚洲成人日韩成人| 欧美精品videofree1080p| 国产香蕉97碰碰久久人人| 国产精品观看在线亚洲人成网| 亚洲激情久久久| 清纯唯美亚洲激情| 精品女同一区二区三区在线播放| 91av免费观看91av精品在线| 日韩成人av网| 欧美黄色免费网站| 国产精品mp4| 成人激情在线观看| 午夜精品一区二区三区视频免费看| 国产视频精品va久久久久久| 成人黄色在线免费| 日韩中文字幕国产精品| 久久99精品国产99久久6尤物| 欧美色播在线播放| 尤物精品国产第一福利三区| 97涩涩爰在线观看亚洲| 91在线观看免费高清完整版在线观看| 亚洲精品国产成人| 国产精品偷伦免费视频观看的| www国产91| 欧美精品一本久久男人的天堂| 国产日本欧美一区二区三区在线| 久久久免费电影| 岛国av一区二区在线在线观看| 亚洲成人黄色网址| 精品亚洲国产视频| 精品女同一区二区三区在线播放| 欧美成人合集magnet| 奇米成人av国产一区二区三区| 中文字幕欧美专区| 激情成人中文字幕| 久久九九全国免费精品观看| 欧美日韩一区二区免费在线观看| 欧美有码在线观看视频| 美女999久久久精品视频| 全色精品综合影院| 91精品国产高清久久久久久| 久久精品视频免费播放| 欧美日韩中文在线| 日韩美女视频免费看| 精品视频—区二区三区免费| 欧美专区在线播放| 日韩美女福利视频| 日韩精品丝袜在线| 久久精品国产亚洲精品| 国产一区二区三区在线| 欧美激情一级欧美精品| 国产精品国产福利国产秒拍| 亚洲视频在线免费观看| 欧美高清在线视频观看不卡| 久久久精品免费视频| 日韩有码在线视频| 欧美一区二区三区艳史| 亚洲精品一区二三区不卡| 91网站免费观看| 欧美日韩国产精品专区| 国产亚洲一区精品| 国产精品美女久久| 欧美电影在线观看网站| 国产亚洲欧洲黄色| 日韩av网站电影| 91久久久久久国产精品| 粉嫩av一区二区三区免费野| 国产精品久久久久久久久久新婚| 国产精品第一区| 亚洲国产一区二区三区在线观看| 色yeye香蕉凹凸一区二区av| 91精品国产综合久久男男| 国产精品美女主播在线观看纯欲| 亚洲性夜色噜噜噜7777| 日韩www在线| 中文字幕不卡在线视频极品| 91高潮在线观看| 亚洲精品久久久久久久久| 国产一区二区香蕉| 亚洲美女自拍视频| 国内精品久久久久久影视8| 欧美激情按摩在线| 亚洲激情视频网| 不卡伊人av在线播放| 91午夜在线播放| 久久人人爽人人爽人人片亚洲| 亚洲视频自拍偷拍| 亚洲最大的网站| 日韩一区视频在线| 欧美巨大黑人极品精男| 91免费精品国偷自产在线| 色综合视频网站| 日韩欧美国产免费播放| 精品国模在线视频| 日韩欧美在线免费观看| 亚洲成av人影院在线观看| 欧美日韩在线视频一区二区| 久久天天躁日日躁| 国内精品久久久久久久久| 亚洲一二在线观看| 亚洲国产小视频| 日韩电影免费观看在线| 亚洲国产精品久久久久秋霞蜜臀| 福利一区福利二区微拍刺激| 亚洲激情第一页| 中文字幕亚洲一区二区三区| 自拍亚洲一区欧美另类| 日韩大片免费观看视频播放| 国产噜噜噜噜久久久久久久久| 国产精品久久一区主播| 精品视频久久久久久| 久久精品精品电影网| 国产精品久久精品| 久久久久www| 综合国产在线视频| 亚洲精品美女在线| 日韩精品久久久久久久玫瑰园| 欧美成人三级视频网站| 亚洲欧美制服综合另类| 欧美日韩不卡合集视频| 亚洲综合精品伊人久久| 4438全国成人免费| 国产精品毛片a∨一区二区三区|国| 亚洲一区亚洲二区亚洲三区| 亚洲精品视频免费| 中文字幕日韩在线视频| 久久精品国产一区二区三区| 欧美国产视频日韩| 成人在线小视频| 精品亚洲一区二区| 国产精品88a∨| 国产亚洲精品久久久久动| 欧美国产视频一区二区| 日韩电影中文字幕av| 久久久久久网址| 欧美精品在线视频观看| 8x拔播拔播x8国产精品| 亚洲色图第三页| 国产日韩在线看片| 欧美综合第一页| 精品美女久久久久久免费| 欧美成年人视频网站欧美| 国产午夜精品一区二区三区| 国产精品久久久| 亚洲电影第1页|