导航:首页 > 编程语言 > 求子串位置的定位函数index程序

求子串位置的定位函数index程序

发布时间:2023-07-16 12:50:56

1. 子串定位 将子串在母串中第一次出现的位置找出来。

我写了一下那个找字串位置的函数,具体的流程你自己写写,要是有问题再追问吧!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int SubString(char *sub, char *src, int pos, int len)
{

int i;

if(pos < 0 || len < 1)

return 0;

for(i=0; i<len; i++)

{

sub[i] = src[pos+i];

}

sub[len] = '\0';

return 1;

}

int Index(char *sub, char *src)
{

int sub_len = strlen(sub);

int src_len = strlen(src);

if(sub_len < 1 || src_len <1)

return 0;

int i = 0;

char *ssub = (char *)malloc(sub_len * sizeof(char) + 1);

while(i < src_len - sub_len + 1)

{

if(SubString(ssub, src, i, sub_len))

if(0 == strcmp(sub, ssub))

return i;

i++;

}

return 0;
}

int main()
{

char src[10] = "ABCDE";

char sub[10] = "DE";

int pos = Index(sub, src);

printf("%d\n", pos);

return 0;
}

2. 字符串的求子串和子串定位问题

#include <stdio.h>
void substr(char s1[20], char s2[20], int i, int m ){
int k;
for (k=i;k<i+m;k++){
s2[k-i]=s1[k];
};
s2[m]='\0';
}
int strindex(char s1[20], char s3[20] ){
int i=0,n=-1;
for (i=0;i<strlen(s1)-strlen(s3);i++){
if (strncmp( &s1[i],s3,strlen(s3))==0) {n=i;break;}
};
return n; // 返回-1 表示没找到,否则,返回位置
}

int main(){
char s1[20]="abcd12121212abcd", s2[20], s3[20]="212";
int i,m;
printf("S1 is %s\n",s1);
printf("input i m: ");
scanf("%d %d",&i,&m);
substr(s1,s2,i,m);
printf("\nS2 is %s\n",s2);
printf("input S3, such as 212\n");
scanf("%s",s3);
printf("location: %d\n", strindex(s1,s3));
return 0;
}

阅读全文

与求子串位置的定位函数index程序相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接