发布网友 发布时间:2022-04-26 17:24
共2个回答
热心网友 时间:2022-05-03 04:13
#include"stdio.h" #include"string.h" void main() { char *str1="nayitian anzd"; char *str2="anz"; int index[20]; int num = 0; int i,j; for (i = 0; i < strlen(str1) - 3; i++) for (j = 0; j < 3; j++) { if (*(str1 + i) == *(str2 + j)) //比较 { i ++; //str1移到下一位 if (j == 2) //如果比较了三次都相等则找到一个 { index[num] = i - 2; //记录str1下标 num ++; } } else { i = i - j; //有不相等的跳出,i回到比较前的值 break; } } printf("共找到:%d个\n",num); printf("下标分别是:"); for (i = 0; i < num; i++) { printf("\t%d",index[i]); } getchar(); }热心网友 时间:2022-05-03 05:31
int str_cmp(int n,char*a,char *b) {int i; for(i=0;i<n;i++) if(a[i]!=b[i]) return 0; return 1; } void f(int n,char *a,char *b) {int i,j; for(i=n;i<strlen(a);i++) {char m[100]; for(j=0;j<=i;j++) m[j]=a[j]; m[j]=0; strcat(m,b); if(str_cmp(strlen(m),a,m)) {puts(m); printf("%d\n",i+strlen(b)+1); f(m-a+1,a,b); } } } main() {char * str1="nayitian anzd";//定义两个字符串,并有两个字符型指针指向 char * str2="anz"; f(0,str1,str2); system("pause");}