导航:首页 > 编程语言 > 求子串位置的定位函数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程序相关的资料

热点内容
电脑里的编程在什么地方 浏览:580
解锁苹果id忘记生日 浏览:847
微信支持文件传输 浏览:568
阻止文件夹搜索win10 浏览:145
罗马复兴升级攻略 浏览:203
类似左手app的还有哪些 浏览:953
kqb文件怎么转成pdf 浏览:425
源代码图案 浏览:222
彩票app向哪里举报 浏览:385
cad安装软件文件 浏览:202
苹果6的文件管理 浏览:416
有哪些提升古典气质的app 浏览:556
ug如何在二维图形直接编程 浏览:761
ps显示器配置文件有问题怎么解决 浏览:517
不能删除的文件夹 浏览:13
如何更改考勤表上的数据 浏览:606
除了编程还有什么技术 浏览:64
为什么程序员讨厌中文编程 浏览:338
数控车床编程g40是什么意思 浏览:782
人们花钱为什么逐渐网络化 浏览:272

友情链接