在一个字符串中查找第一个只出现一次的字符

在一个字符串中查找第一个只出现一次的字符

Java字符串查找

Java中字符串中子串的查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。 indexof()用法说明 indexof() 返回String 对象内第一次出现子字符串的字符位置。 string.indexOf(subString[, startIndex]) 参数 string 必选项。String 对象或文字。 subString 必选项。 要在String 对象中查找的子字符串。 starIndex 可选项。 该整数值指出在String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。 说明 indexOf 方法返回一个整数值,指出String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果startindex 是负数,则startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 从左向右执行查找。否则,该方法与lastIndexOf 相同。 示例 下面的示例说明了indexOf 方法的用法。 function IndexDemo(str2){ var str1 = "BABEBIBOBUBABEBIBOBU" var s = str1.indexOf(str2); return(s); }

汇编语言查找匹配字符串

汇编语言实验二查找匹配字符串 一、目的 查找匹配字符串SEARCH 二、实验内容 程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示‘NO match!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。 流程图

N Y Y Y 输入关键字 结束 关键字长度=0 输入句子 句子长度<关键字长度 Y 保存关键字长度到cx,cx 入栈,保存总循环次数(句子长度-关键字长度+1) 到al,将句子的首地址放进bx(作为基址寄存器)si=di=0(变址寄存器) 开始比较[bx+di]与[si]是否相等 si+1,di+1,cx-1(同时指向下一个字符) Y N bx+1(句子指向下一个字符)cx 出栈,再入栈,si,di 清零,al-1cx 是否为0 N 匹配完成,调用子程序输出 al 是否为0 不匹配,输出三、设计和编码 DATA SEGMENT mess1DB 'Enter keyword:','$'mess2DB 'Enter Sentence:','$'mess3DB 'Match at location:','$'mess4DB 'NOT MATCH.',13,10,'$'mess5DB 'H if the sentence',13,10,'$'

change DB13,10,'$' stoknin1label byte max1db10 act1db? stokn1db10dup(?) stoknin2label byte max2db50 act2db? stokn2db50dup(?) DATA ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODE SEGMENT ;*************************************代码段 main proc far assume cs:code,ds:data,es:data START: push ds sub AX,AX sub BX,BX sub DI,DI sub SI,SI push AX;为返回dos并清空后面要用到的寄存器 MOV AX,DATA MOV DS,AX LEA DX,mess1 MOV ah,09 INT21h;输出Enter keyword LEA DX,stoknin1 MOV ah,0ah;用21号中段的0ah号功能获取关键字 INT21h cmp act1,0 je exit;如果为空直接退出程序 a10: ;********************************输入Sentence并判断 LEA DX,change MOV ah,09 INT21h;输出回程,换行 LEA DX,mess2 MOV ah,09 INT21h;输出Enter Sentence: LEA DX,stoknin2 MOV ah,0ah INT21h;用21号中段的0ah号功能获取句子 MOV AL,act1 CBW MOV CX,AX;保存关键字长度到cx PUSH CX;cx入栈 MOV AL,act2 cmp AL,0 je a50;保存句子长度到al,若句子为空则跳转显示not match SUB AL,act1 js a50;若句子长度小于关键字长度,则跳转显示not match INC AL CBW LEA BX,stokn2;将句子的首地址放进BX MOV DI,0 MOV SI,0 a20: ;****************************************比较,内循环 MOV AH,[BX+DI] CMP AH,stokn1[SI];遇见字符不相等就跳转到a30

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

c语言,查找字符

计算机实习报告书 一、需求分析 实习题目:在英文txt文档中查找任意字符串,输出其出现的位置及个数。由题目可知,要求所编的程序可打开任意英文txt文档,查找其中的任意英文字符串,输出其所在的位置,即其所在的行列,而且所查找的字符串可能在文章中出现多次,所以还要输出其出现的个数。 下面为英文txt文档的内容,是一封英文信件: Mechanical Engineering Department Dalian University of Technology Dalian 116023 Liaoning,China November28,1999 Mr. WangXiming Mechanical Engineering Department Massachusetts Institute of Technology Cambridge, Mass. 02139 U.S.A. Dear Mr. Wang, Thank you for your letter of November 3,1999. I am sorry not to have written back earlier but time seems to pass so quickly. I learnt from your letter that you had received you master’s degree. I would like to congratulate you on your splendid success. In this letter I am bringing you a piece of good news:your wife gave a birth of a boy last week and she ins in good health now. The baby weighed eight jin at birth. Y esterday my wife and some other neighbors went to the hospital to see your wife and to congratulate her on the birth. She told them that she had been nursed with the best care since she was in hospital. Now I’m taking the V isiting School Test in Beijing. If I pass the examination, I’ll leave for America soon. If not, I’ll wait for another chance.I’ve never been to the U.S.A., and I know little about the institutions and customs there. I hope that you will write to me and tell me more about them. With best regards to you and your classmates. Y ours sincerely, Zhang Jiao 以下是要从该英文txt文档中查找的字符串,共5组:1、I;2、letter;3、to;4、kk;5、classmates。 设置查找多组字符串,确定其在找到情况下的输出状态,以及找不多或找到多出时的状态。 二、程序设计 流程图如下:

字符串的查找与替换汇编实现

汇编程序设计——语言翻译机 (一)实验内容 本次汇编程序设计题目选自2006年百度之星程序设计大赛初赛题目。原题如下: 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩率语和专有名词翻译成日常语言。 ●输入数据: 输入数据包含三部分 1. 第一行包含一个整数N(N<=10000 ),表示总共有多少个 缩率语的词条。 2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。 第一个字符串为缩率语(仅包含大写英文字符,长度不超过 10 ),第二个字符串为日常语言(不包含空格,长度不超过 255 )。 3. 从第N+2 开始到输入结束为包含缩略语的相关文档。(总 长度不超过1000000 个字符) ●输出数据: 将缩率语转换成日常语言,其他字符保留原样。

●输入样例: 6 PS(门户搜索部) NLP(自然语言处理) PM(产品市场部) HR(人力资源部) PMD(产品推广部) MD(市场发展部) 百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。 ●输出样例: 百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。

(二)算法流程图 本程序算法流程图如下: 注: 要将缓冲区中字符串末尾回车符替换为$。

rank

strcpy(复制): Array Strcat(粘贴):

在字符串中查找某字符的函数

杨振平

函数原型:char *strchr(char *str, char c); 算法:从str的第一个字符查起,查到字符后就返回该字符的地址;查不到则返回空值NULL。 while(*str!='\0') { if(*str==c)return str; str++; } return NULL;

char *strchr(char *str,char c) { while(*str!='\0') { if(*str==c)return str; str++; } return NULL; }

int main() { char *str="abcdefghij"; char *p; p=strchr(str,'j'); if(p==NULL)cout<<"字符串中无该字符。"<

字符型指针与字符数组在使用中异同,如: (1)char str[81]=“abcde”,*pstr=“abcde”; 正确(2)char str[81],*pstr; str=“abcde”; -错误 pstr=“abcde”;–正确 (3)char str[81],*pstr; cin>>str; -正确; cin>>pstr; -错误

定义格式: 类型*数组名[元素个数]; 例如:定义5个int型的指针数组 int*ptr[5]; 例如:定义指向多个字符串的指针数组: char *str[]={“Basic”, “Fortran”, “C++”,”Java”};

字符串搜索算法

字符串搜索算法 一、 字符串搜索算法介绍 字符串匹配是计算机科学中最古老、研究最广泛的问题之一,其应用随处可见,特别是在信息检索领域和计算生物学领域。字符串匹配是指从给定的符号序列中找出一个具有某中属性的模式,最简单的例子是从给定的字符序列中找出一个给定的字符串。 字符串匹配根据模式的不同分为字符串(单模)、字符串集(多模)、扩展字符串和正则表达式等四种模式,同时根据匹配精确度的不同又分为精确匹配和近似匹配。科学家们根据各种模式的特性研究出了多种对应的高效经典的搜索算法。 1、 精确匹配 1.1 单模匹配算法 单模匹配就是在一个大的字符串1中搜索某个字符串的所有出现位置。单模匹配算法根据搜索方式分为前缀搜索、后缀搜索和字串搜索。下面简单介绍这三种方式: 前缀搜索:在搜索窗口从前向后逐个读入文本字符,搜索窗口中文本和模式串的最长公共前缀。如下图: 后缀搜索:在搜索窗口从后向前逐个读入文本字符,搜索窗口中文本和模式串的最长公共后缀。如下图: 1 一个字符串是一个定义在有限字母表上的字符序列。 前向搜索 文本 模式串 后缀搜索 文本 模式串

子串搜索:在搜索窗口从后向前逐个读入文本字符,搜索满足如下条件的u :u 既是窗口中文本的后缀,也是模式串的字串。如下图: 这三种方式对应的搜索算法如下表: 搜索方式 著名算法 前缀搜索 KMP 算法及其变体、Shift-And/Shift-Or 算法 后缀搜索 BM 算法及其变体、Horspool 算法、Sunday 算法 子串搜索 BDM 算法、BNDM 算法、BOM 算法、Karp-Rabin 算法 除了上述算法及相应的变体算法外,还有将多种算法组合进行改进的算法,如将KMP 算法和BDM 算法一起使用的TurboBDM 算法。 1.2 多模匹配算法 单字符串匹配问题可以很自然地扩展到同时搜索一组字符串的问题,这就是多模匹配。例如在“CPM annual conference announce ”中同时搜索announce 、annual 、annually 三个字符串。 相应的算法主要是基于单模匹配算法扩展而来,也分为前缀搜索、后缀搜索和子串搜索三种方式。具体搜索算法如下表: 搜索方式 著名算法 前缀搜索 Multiple Shift-And 算法、Aho-Corasick 算法、 后缀搜索 Commentz-Walter 算法、Set Horspool 算法、Wu-Manber 算法 子串搜索 Dawg-Match 算法、MultiBDM 算法、SBDM 算法、SBOM 算 法、Multiple Shift-And 算法、Multiple BNDM 1.3 扩展字符串匹配算法 扩展字符串是介于简单字符串和正则表达式之间的一种复杂字符串,对简单字子串搜索 文本 模式串

LINUX下查找文件或字符串的方法

LINUX下查找文件或字符串的方法 第一个命令:find(我比较常用) 功能说明: find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。 举例: 我们要在/usr目录及子目录下查找“intelism”文件: find /usr -name intelism -print 我们要在/usr目录及子目录下查找文件名包含“intelism”关键字的文件: find /usr -print |grep intelism 若不填写/usr的话就是在当前路径及子目录下查找 语法: find [目录...][-amin <分钟>][-anewer <参考文件或目录>][-atime <24小时数>][-cmin <分钟>][-cnewer <参考文件或目录>][-ctime <24小时数>][-daystart][-depyh][-empty][-exec <执行指令>][-false][-fls <列表文件>][-follow][-fprint <列表文件>][-fprint0 <列表文件>][-fprintf <列表文件><输出格式>][-fstype <文件系统类型>][-gid <群组识别码>][-group <群组名称>][-help][-ilname <范本样式>][-iname <范本样式>][-inum ][-ipath <范本样式>][-iregex <范本样式>][-links <连接数目>][-lname <范本样式>][-ls][-maxdepth <目录层级>][-mindepth <目录层级>][-mmin <分钟>][-mount][-mtime <24小时数>][-name <范本样式>][-newer <参考文件或目录>][-nogroup][noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值>][-print][-print0][-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小>][-true][-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称>][-version][-xdev][-xtype <文件类型>] 参数: -amin<分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。 -anewer<参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。 -atime<24小时数> 查找在指定时间曾被存取过的文件或目录,单位以24小时计算。-cmin<分钟> 查找在指定时间之时被更改的文件或目录。 -cnewer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。 -ctime<24小时数> 查找在指定时间之时被更改的文件或目录,单位以24小时计算。-daystart 从本日开始计算时间。 -depth 从指定目录下最深层的子目录开始查找。 -expty 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。 -exec<执行指令> 假设find指令的回传值为True,就执行该指令。 -false 将find指令的回传值皆设为False。

Linux字符串查找

查找目录中文件的字符串grep -n "str" -r ./ 这是查找当前目录下以及下辖子目录下所有包含str字符串的文件 如何用grep在本目录及其所有的子目录下的文件里面查找字符串abc? grep -R abc * 要找隐藏文件,可以: grep -R abc * .* find ./ -type f|xargs grep abc 以前写的一个小脚本,不过没用grep,不知是否合lz用 #!/bin/bash # create by krqi ^_^,glade to help u :) find . -type f -exec gawk 'BEGIN{n=0} {if($0~/'"$1"'/){a[n++]=FNR" "$0}}END{if(n>0){print(FILENAME);for(i=0;i/dev/null 打印当前目录下文件中包含指定的字符串信息, 首先打印文件名,然后打印所查找的字符串在该文件中的行号并打印出该行。希望对大家工作有所帮助:) 用法:比如你把它存为myfind,然后这样使用 myfind "what u want find" 然后就把当前目录下(包含子目录),所有包含"what u want find"的信息打印出来了:) find 是高级的寻找文件工具,可不像whereis 那么“阳春白雪”。但也因为它太高级了,复杂到很多人用不熟练。我们尽量只举简单的例子。 最简单的格式如下: find / -name my* -print 这个意思是请它从最底层的主目录开始找,找出文件名是my 开头的文件,把它显示出来。-print 选项是显示,您可把它当做固定要加上的项目。 但它还可以用时间来找,例如: find /usr -atime 3 –print 会从/usr 目录开始往下找,找最近3天之内存取过的文件。 find /usr -ctime 5 –print

String 中字符(串)查找

String的用法 String类仅仅查找操作就为我们提供了6种查找函数,每种函数以不同形式的find命名。 find、r find、find_first_of 、find_first_not_of、find_last_of 、find_last_not_of 这些都是const成员函数,const 也就是说,它们只是为了针对某种用途去寻找子串的位置,并不能够改变它们所作用的那个串的值。 这些操作全都返回string::size_type类型的值,也就是说,返回的结果是一个unsigned值(即,无符号整形)。要么是以下标形式查找匹配所发生的位置(也就是返回当前查找到的子串下标);或者返回一个名为string::npos 类型的值,说明查找没有匹配,也就是找不到你所查找的字符。就这么两种形式,要么是返回下标,要么返回npos。 每个查找操作都有4个重载版本,每个版本使用不同的参数形式。基本上,这些操作的不同之处在于查找的到底是单个字符,还是另一个string字符串,或者c风格的以空字符结束的字符串,还是用字符数组给出的特定数目的字符集合。 比如说: size_type find(const basic_string &s , size_type i=0) const; const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。 注: basic_string::npos An unsigned integral value initialized to –1 that indicates either "not found" or "all remaining characters" when a search function fails. static const size_type npos = -1; 1、Find 查找子串第一次出现的位置 Searches a string in a forward direction for the first occurrence of a substring that matches a specified sequence of characters 最简单的查找操作就是find函数了。用于寻找实参指定的内容。如果能找到的话,则返回第一次匹配的下标值;如果找不到,则返回npos。 在此,我们首先定义一个字符串。 String s(“hello world”); //定义一个string变量s String::size_type pos= s.find(args); //args –>参数 if (pos!= string::npos ) cout<

C语言算法,查找字符串在文中出现的次数。

目录 一.问题描述-------------------------------------------1 二.基本要求---------------------------------------------------------------1三.数据结构----------------------------------------------------------------1四.算法设计思想及流程图-----------------------------------------------1 五.源程序-------------------------------------------------------------------5 六.测试情况----------------------------------------------------------------8 参考文献---------------------------------------------------------------------8

一.问题描述 建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写。统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的位置。 二.基本要求 1.建立一个文本文件 2.输入一个不含空格的单词,统计输出在文本中出现的次数 3.输入一个,检索并输出在文本中出现的行号和该行中的相应位置 三.数据结构 1.子函数设计: (1). void get_next(SString T,int next[]) //求next值 (2). int Index(SString S,SString T,int pos) //KMP算法 (3). void find(char name[],SString keys) //查找函数 2. 主函数调用设计: int main() //主函数 3. 结构设计: #define MAXSTRLEN 255 //最大串长 typedef char SString[MAXSTRLEN+1]; //串的定长顺序存储表示 int next[MAXSTRLEN] //KMP算法中用到的next 四.算法设计思想及流程图 主函数设计: int main() { char name[50]; //存储输入的小说路径字符串 SString words[10]; //定义字符串数组,用于存储输入的关键字 int n,i; printf("Please input the name of the novel:\n"); scanf("%s",name); printf("How many words do you want to find?(n<10)\n"); scanf("%d",&n); printf("Please input the words you want to find:\n"); for (i=0;i

Oracle截取字符串和查找字符

oracle 截取字符串和查找字符 oracle 截取字符(substr),检索字符位置(instr) 常用函数:substr和instr 1.SUBSTR(string,start_position,[length])截取子字符串,返回字符串 解释:string 元字符串 start_position 开始位置(从1开始),截取时包含起始位置(为负数时,从尾部算起) length 可选项,子字符串的个数,为空时,截取到最后一个字符 For example: substr("123456", 0); //返回:123456,截取所有字符 substr("123456", 2); //返回:23456,截取从2开始及之后所有字符 substr("123456", 0, 3); //返回:123,截取从1开始3个字符 substr("123456", 0, 100); //返回:123456,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 substr("123456", -3); //返回:456,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 2.INSTR(string,subString,position,ocurrence)查找字符串位置 解释:string:源字符串 subString:要查找的子字符串 position:查找的开始位置 ocurrence:源字符串中第几次出现的子字符串 For example: INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置;返回结果为14 '

【IT专家】搜索一个字符串是否存在于另一个字符串中

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 搜索一个字符串是否存在于另一个字符串中 2011/04/25 16629 echo “The string ‘$findme’ was found in the string ‘$mystring’”; echo “ and exists at position $pos”;} else { echo “The string ‘$findme’ was not found in the string ‘$mystring’”; However, it always executes this branch: 但是,它总是执行这个分支: echo “The string ‘$findme’ was found in the string ‘$mystring’”;echo“ and exists at position $pos”; although the string I ‘m searching for doesn’t exist. 虽然我正在搜索的字符串不存在。 Please help, thx in advance :)) 请帮忙,thx 预先:) if ($pos !== false) { echo “The string ‘$findme’ was found in the string ‘$mystring’”; echo “ and exists at position $pos”;} else { echo “The string ‘$findme’ was not found in the string ‘$mystring’”; See the giant red warning in the documentation. 请参阅文档中巨大的红色警告。 3 strpos returns a boolean false in case the string was not found. Your test should be $pos !== false rather than $pos = 0. 如果没有找到字符串,strpos 返回一个boolean false。您的测试应该是$pos !== false,而不是$pos = 0。 Note that the standard comparison operators do not consider the type of the operands, so that false is coerced to 0. The === and !== operators yield true only if the types and the values of the operands match. 注意,标准比较操作符不考虑操作数的类型,因此false 被强制为0。===和!=操 作符只有在操作数的类型和值匹配时才为真。 1 See the warning on the manual page

实用的库函数(字符串查找-比较等)

C/C++字符串查找函数 分类:C/C++2011-10-08 21:42 22992人阅读评论(0) 收藏举报characternullstring C/C++ string库(string.h)提供了几个字符串查找函数,如下: 函数说明: 1、memchr 原型:const void * memchr ( const void * ptr, int value, size_t num); void * memchr ( void * ptr, int value, size_t num); 参数:ptr,待查找的内存指针; value,要查找的值; num,内存大小。 说明:在ptr指向的内存中查找value,返回指向和value首次匹配的元素指针,如果没有找到,返回NULL指针。 2、strchr

原型:const char * strchr ( const char * str, int character); char * strchr ( char * str, int character); 参数:str,待查找字符串指针; character,要查找的值。 说明:在字符串str中查找character,返回指向和character首次匹配的元素指针,如果没有找到,返回NULL指针。 3、strcspn 原型:size_t strcspn ( const char * str1, const char * str2); 参数:str1,待查找的字符串指针; str2,要查找的字符串指针。 说明:在str1中查找str2中的字符,返回找到str2中任意一个字符时已查找的字符个数。 4、strrchr 原型:const char * strrchr ( const char * str, int character); char * strrchr ( char * str, int character); 参数:str,待查找的字符串指针; character,要查找的值。 说明:在str中查找character,返回指向与character最后一次匹配的元素的指针,如果没有找到,返回NULL指针。 5、strpbrk

汇编实验二查找匹配字符串

实验三查找匹配字符串 1.实验目的: 查找匹配字符串SEARCH。 2. 实验要求: 程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示“No match!”;如果句子中包含关键字则显示“Match!”,且把该句子中的位置用十六进制数显示出来。 实验结果: 要求程序的执行过程如下: Enter keyword:abc Enter Sentence: We are studying abc. Match at location:11H of the sentence. Enter Sentence: xyz, Ok? No match. Enter Sentence: ^C 3. 实验报告要求: (1)分析要点及调试后的正确程序。 (2) 实验体会。 源代码: DATAREA SEGMENT STRING1 DB "Enter keyword:$" STRING2 DB "Enter sentence:$" STRING3 DB "Match at location:$" STRING4 DB "No match!",13,10,"$" STRING5 DB "H of the sentence.$" keyword DB 50D,?,51D DUP(?) sentence DB 50D,?,51D DUP(?) DATAREA ENDS CODE SEGMENT

MAIN PROC FAR ASSUME CS:CODE,DS:DATAREA,ES:DATAREA START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATAREA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,09H INT 21H LEA DX,keyword MOV AH,0AH INT 21H MOV AH ,02H MOV DL,0AH INT 21H LEA DX,STRING2 MOV AH,09H INT 21H LEA DX,sentence MOV AH,0AH INT 21H MOV AH,02H MOV DL,0AH INT 21H LEA SI,keyword+2 ;关键词 LEA DI,sentence+2 MOV AX,0 MOV AL,[sentence+1] ;句子字符个数MOV AH,[keyword+1] ;关键词字符个数CMP AL,AH JL NO SUB AL,AH MOV AH,0 MOV CX,AX INC CX COMPARE: PUSH CX

从字符串中提取相应的字符

实例2:从单元格中提取指定的字符 问题:现有张数据表,现在里面A列的数据都是A*B+C*D 样式(像0.56*2+124.1*4),现在要的结果是在后面得出单价1(A)、数量1(B)、单价2(C)、数量2(D)。 您是游客您没有权限查看该图片 当然你可以手工一个一个输入,但是这里的数据量还比较小,要是这样的记录有几千条甚至更多,那么一条一条的输入未免就有点劳民伤财了,所以我们得想点“偷懒”的办法。 分析:要从A列的数据中提取出A、B、C、D,首先得知道它们之间的分界是什么? 因为这四个数值都不能确定位数,可能是一位数,也可能是6位数,所以使用运算符号“*”和“+”去定位是比较理想的。 那么A就是左起第一个“*”号左边的全部数值; B即是第一个“*”号和“+”号之间的全部数值; C是“+”号和左起第2个“*”号之间的全部数值; D是左起第2个“*”号右边的全部数值。 这样就可以编公式了: “单价1”列(B列)的B2中输入=LEFT(A2,FIND("*",A2)-1) “数量1”列(C列)的C2中输入 =MID(A2,FIND("*",A2)+1,FIND("+",A2)-FIND("*",A2)-1)

“单价2”列(D列)的D2中输入 =MID(A2,FIND("+",A2)+1,FIND("*",A2,FIND("+",A2))-FIND("+",A2)-1) “数量2”列(E列)的E2中输入 =RIGHT(A2,LEN(A2)-FIND("*",A2,FIND("*",A2)+1)) 函数解释: 这里用到了left、find、mid、right、len这五个函数,先来解释下他们的含义及用法。 mid、len函数在上篇有介绍,请参阅跟番茄一起来学Excel函数——实例1:根据身份证计算年龄 left函数是得到字符串左部指定个数的字符。 语法格式:LEFT( string, n ) 参数:string 指定要提取子串的字符串, n 指定字符串长度返回值string。 说明:函数执行成功时返回string字符串左边n个字符,发生错误时返回空字符串("")。如果任何参数的值为NULL,Left()函数返回NULL。如果n的值大于string字符串的长度,那么Left()函数返回整个string字符串,但并不增加其它字符。 举例:如果A1=“安徽省蚌埠市固镇县杨庙乡”,则公式“=LEFT(A1,3)”返回安徽省。 right函数right函数的功能是从字符串右端取指定个数字符。 语法格式:Right ( string, n ) 参数:string指定要提取子串的字符串 n指定字符串长度返回值String。 说明:函数执行成功时返回string字符串右边n个字符,发生错误时返回空字符串("")。如果任何参数的值为NULL,Right()函数返回NULL。如果n的值大于string字符串的长度,那么Right()函数返回整个string字符串,但并不增加其它字符。 举例:如果A1=“安徽省蚌埠市固镇县杨庙乡”,则公式“=LEFT(A1,3)”返回“杨庙乡”。 find函数用来对原始数据中某个字符串进行定位,以确定其位置。Find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。

在Delphi中字符串查找 函数

在Delphi中字符串查找函数 Delphi提供的字符串函数里有一个Pos函数,它的定义是: 它的作用是在字符串S中查找字符串Substr,返回值是Substr在S中第一次出现的位置,如果没有找到,返回值为0。 使用pos函数来查找字符第一次出现的位置 var str1:string; i,j:integer; begin str1:='dsf4654f6ad' ; j:=pos('<',str1);//在字符串str1中查找"<" if j<>0 then //得到的j是字符串中出现的位置,是整型 showmessage('<'+'在第'+inttostr(j)+'个位置'); //第十个位置 end; =============================================== 首部function StrPos(const Str1, Str2: PChar): PChar; $[SysUtils.pas 功能返回指针字符串Str2在Str1中第一个出现的地址 说明没有找到则返回空指针;StrPos('12345', '3') = '345' 参考 例子Edit3.Text := StrPos(PChar(Edit1.Text), PChar(Edit2.Text)); =================================================== StrScan : 返回一个字符在一个 PChar 串中第一次出现的位置指针;

StrRScan : 返回一个字符在一个 PChar 串中最后一次出现的位置指针; StrPos : 返回一个 PChar 串在另一个 PChar 串中第一次出现的位置指针. //给你尝试一下,简单分隔一下吧。 program Project1; {$APPTYPE CONSOLE} uses SysUtils, Classes; function GetMainStrs(ATalks: string): TStrings; Var p1, p2, l2, l1: Integer; str: string; begin Result := TStringList.Create(); l1 := Length(':'); //分隔符的长度 l2 := Length(';'); //分隔符的长度 while(ATalks <> '') do begin p1 := Pos(':', ATalks); p2 := Pos(';', ATalks); if (p1>0) and (p2>0) then begin if (p1

相关文档
最新文档