3 votes

Comparaison de 2 chaînes de caractères et sauvegarde des résultats

#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 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X