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

熱點內容
安卓代碼讀取界面信息 瀏覽:714
數控車床車55度螺紋怎麼編程 瀏覽:391
word桌面找不到文件 瀏覽:585
數控車床編程怎麼做到的 瀏覽:639
哈爾濱市行政區劃代碼 瀏覽:716
如何顯示文件擴張 瀏覽:283
ps怎麼移植文件 瀏覽:443
傳奇補丁文件說明 瀏覽:513
奧維地圖怎麼設置網路疊加 瀏覽:407
linux載入庫文件so失敗 瀏覽:714
大家都想要的app 瀏覽:58
程序員比特幣 瀏覽:568
mysqlfrm是什麼文件 瀏覽:665
win10點擊文件夾聲音消失 瀏覽:963
蘋果手機空白文件名 瀏覽:833
linuxmv覆蓋合並文件夾 瀏覽:932
不開訪客網路怎麼聯網 瀏覽:631
win10的軟體卸載 瀏覽:779
crv汽車自帶網路怎麼打開 瀏覽:973
食品原材料到什麼網站購買 瀏覽:649

友情鏈接