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

热点内容
网络评选一般有哪些 浏览:476
2021三支一扶报名数据在哪里看 浏览:914
网络未备案怎么打得开 浏览:987
计算机程序用什么编程语言 浏览:324
linux入门常用命令 浏览:497
江宁区哪里有数控编程培训 浏览:778
java写一个shape形状类 浏览:744
win7如何设置word背景颜色 浏览:484
如何创造电脑编程语言 浏览:56
昂达平板电脑图形密码忘记怎么办 浏览:92
组织文件内容是什么 浏览:183
0基础如何学习智能编程 浏览:366
java程序员全攻略下载 浏览:715
网络逆向教程 浏览:135
iso文件如何重装系统 浏览:750
ghost镜像文件路径如何恢复 浏览:832
搭建网站需要多少钱啊 浏览:599
编程猫怎么设置背景亮度 浏览:177
qq文件破损 浏览:414
javapoi配置 浏览:608

友情链接