发布网友 发布时间:2022-04-27 04:12
共2个回答
热心网友 时间:2022-06-26 00:26
#include <stdio.h>
int lookup(char *str, char *key);
main()
{
char str[1024] = "asdfjad asdfh adsf adsf adsf adf adsfasdfkjasdf andsf akdf sdkf"
char key[32];
int pos[100];
printf("输入要查询的单词: ");
scanf("%s", key);
lookup(str, key, pos);
printf("共重复了%d次\n,位置分别是:", pos[0]);
for(i = 1 ; i <= pos[0]; i ++) {
printf("%d “, pos[i]);
}
printf("\n");
}
int lookup(char *str, char *key, int pos[])
{
int i, j;
pos[0] = 0; /* 记录重复次数 */
for(i = 0; i < strlen(str); i ++) {
if(key[0] == str[i]) {
for(j = 1; j < strlen(key); j ++) {
if(key[j] != str[i+j])
break;
}
if(j == strlen(key)) { /* found */
pos[0] ++;
pos[pos[0]] = i;
i += j-1;
}
}
}
}
热心网友 时间:2022-06-26 00:26
/*
请输入字符串 : I love my home
要查找的串 : m
7 12
请按任意键继续. . .
*/
#include <stdio.h>
#include <string.h>
void FindWord(char *s, char *w) { //显示w在s中出现的索引位置
char *q,*p = s;
int i,start;
while(*p) {
q = w;
i = 0;
if(*p == *q) {
start = p - s;
while(p[i] == q[i]) ++i;
if(q[i] == '\0') printf("%d ",start);
}
++p;
}
printf("\n");
}
int main() {
char s[81],t[81];
printf("请输入字符串 : ");
gets(s);
printf("要查找的串 : ");
gets(t);
FindWord(s,t);
return 0;
}