C语言字符串查找简单程序

C语言字符串查找简单程序,第1张

#include<誉搭陵stdio.h>

int main(){

//str相当于保存字符的数组

char *str = "abc abc bcd bcd efg fff"

//用于保存三个连续字母出现的频次

int tag[25] = {}

int max = 0,i

char *ch

ch = str

while(*ch != '\0'){

if(*ch == ' '){

ch += 1

}else{

if(*(ch + 1) == ' ')

{

ch += 2

} else{

if(*ch + 1 == *(ch + 1) ){

if(*(ch + 2) == ' '庆戚){

ch += 3

}else{

if(*(ch) + 2 == *(ch + 2))

{

tag[*ch - 'a'] ++

ch += 1

}else{

ch += 2

}

}

}else{

ch += 1

}

}

}

}

max = tag[0]

//查询出现频次最高的字符串

for(i = 1i <25i ++){

if(tag[i] >max)

max = tag[i]

}

//输出查询结果

if(max == 0)

{

printf("没有找到三个字母连续的字符串\n")

}else{

printf("出现频枝搭次最多的有:\n")

for(i = 0i <25i ++)

if(tag[i] == max)

printf("%c%c%c\n",'a' + i,'a' + i + 1,'a' + i +2)

}

return 0

}

search(id,content)

{

if id==null then

{

for item in items

{

if item.content has content then

output item

endif

}

else{

for item in items

{

if item.id==id then

output item

endif

}

}

}

#include<stdlib.h>

void

sort(int

a[],int

n){

/*排序函数,要使用二分法查找就必须对数组进行排序*/

int

i,k

for(i=0i<ni++){

int

min=i

for(k=i+1k<nk++)

if(a[min]>a[k])min=k

if(i!=min){

a[min]+=a[i]/*这里是运用加减法交换两个数*/

a[i]=a[min]-a[i]

a[min]-=a[i]

}

}

}

int

find(int

a[],int

n,int

key){/*二分法查找;参数:数组名,数组长度,查找关键字*/

int

min=0,max=n-1/*二分法查找头尾变量*/

while(min<max){/*如果最头的变量值大于最尾变量的值,则查找不到,查找失败*/

int

cen

=

(min+max)/2

if(a[cen]==key)

return

cen/*如果查到,则返回关键字在排序数组的下标*/

if(cen==min

||

cen==max)break/*如果中亮旦间变量等于头尾任一个变量,同样查找失败*/

if(a[cen]>key)

max=cen

else

min=cen

}

return

-1

}

void

main(){/*主程序只是为了证明敬肆扰两个函数的可行性,可以自己编写雹雹*/

int

a[]={14,10,25,36,87,95,10,12,13,8},i

sort(a,10)

i=find(a,10,11)

if(i!=-1)

printf("be

found")

else

printf("no

found")

getch()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8256742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存