導航:首頁 > 編程語言 > 求子串位置的定位函數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程序相關的資料

熱點內容
阻止文件夾搜索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
如何用編程辦理電信業務 瀏覽:189
數控磨床小圓弧怎麼編程 瀏覽:390
桐鄉編程貓在哪裡 瀏覽:69

友情鏈接