用c语言编一个查重程序

Python015

用c语言编一个查重程序,第1张

#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 = 0i <strlen(str)i ++) {

if(key[0] == str[i]) {

for(j = 1j <strlen(key)j ++) {

if(key[j] != str[i+j])

break

}

if(j == strlen(key)) { /* found */

pos[0] ++

pos[pos[0]] = i

i += j-1

}

}

}

}

检查一个数中每位的数字是否重复, n%10来得到当前最小位的值, 每次迭代都n/=10 ,使得数字都向右移动一位 n>0来检测是否已经检测完了。 比如123这个数; n%10 == 3,说明3已经出现,所以digit_seen[3] == TRUE了,如果检测到digit_seen[3] == TRUE,说明已经有3这个数字了,就重复了,所以就直接跳出循环,此时n!=0,再通过检测n就可以判断了。 n/=10来将数字向右移动一位,这个时候n == 12 继续前两步,直到n=0(因为任何小于等于9的整形数除以10都是0)