用c语言编一个查重程序

发布网友 发布时间: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;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com