Напечатать общие буквы трех слов - C (СИ)
Формулировка задачи:
В общем задача на С: "даны три слова, напечатать их общие буквы. повторяющиеся буквы каждого слова не рассматривать"
код:
как исключить повторы ??
unsigned char a[15], b[15], c[15];
FILE *fp;
fp=fopen("data.txt","r");
while(getc(fp)!=EOF){
fseek(fp,-sizeof(char),SEEK_CUR);
fscanf (fp,"%s %s %s",&a, &b, &c);
printf("%s %d %s %d %s %d\n",a,strlen(a), b, strlen(b), c, strlen(c));
}
{int i,j,k;
for(i=0;i<strlen(a);i++){
for(j=0;j<strlen(b);j++){
for(k=0; k<strlen(c); k++){
if(a[i]==b[j] && b[j]==c[k]) {
printf("bukva %c obshaya\n",a[i]);
}
}
}
}
}
fclose (fp);Решение задачи: «Напечатать общие буквы трех слов»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main()
{
char* a = "adaxsrw", *b = "adxrwr", *c = "adxrw", *pa = a, *resb = NULL, *resc = NULL;
for(; *pa; ++pa)
{
resb = strchr(b, *pa);
resc = strchr(c, *pa);
if(resb && (resb == strrchr(b, *pa)) &&
resc && (resc == strrchr(c, *pa)) &&
(strchr(a, *pa) == strrchr(a, *pa)))
{
printf("%c\n", *pa);
}
}
return 0;
}