#include <stdio.h>
#define MAX 1000
void any(char s1[], char s2[], char s3[]);
int main()
{
char string1[MAX], string2[MAX], string3[MAX];
printf("Jepni stringen 1\n");
scanf("%s", &string1); //saving string 1
printf("Jepni stringen 2\n");
scanf("%s", &string2); //saving string 2
any(string1, string2, string3); /*comparing characters from string 2 to string 1 and saving the places where they are equal on third string */
printf("%d", string3[0]); //printing the first character of the third string
return 0;
}
void any(char s1[], char s2[], char s3[])
{
int i, j, k;
k = 0;
for (j = 0; j != '\0'; j++) {
for (i = 0; i != '\0'; i++) {
if (s1[i] == s2[j]) {
s3[k] = i;
j++;
k++;
}
}
}
}
J'essaie de créer un programme c qui scanne 2 chaînes de caractères (les sauvegardant sur les chaînes 1 et 2) que le programme en utilisant la fonction any va voir caractère par caractère si les caractères de la chaîne 2 sont égaux avec la chaîne 1, s'ils le sont il donnera la première position où ils sont trouvés, dans le cas où rien n'est trouvé il affiche un -1. Le programme demande le premier caractère qui est égal, c'est pourquoi j'imprime toujours le premier caractère de la chaîne 3, le programme ne fonctionne pas car il imprime toujours -1. Exemple si je mets sur la chaîne 1 papa et sur la chaîne 2 le caractère d Le programme devrait afficher le 0 position si je mets papa sur la chaîne 1 et sur la chaîne 2, je mets a il devrait afficher 1 .