Maison >tutoriels informatiques >connaissances en informatique >Implémentation de fonctions en langage C écrites à l'aide de pointeurs

Implémentation de fonctions en langage C écrites à l'aide de pointeurs

PHPz
PHPzavant
2024-01-24 21:39:051057parcourir

Implémentation de fonctions en langage C écrites à laide de pointeurs

Écrivez une fonction en langage C et utilisez la méthode du pointeur pour implémenter la fonction

int find(char* source/*source string*/, char* target/*substring*/)//Si trouvé, renvoie la position dans la chaîne source. S'il n'est pas trouvé, il renverra -1 si vous le souhaitez. changez-le pour trouver et renvoyer 1, changez Return i est modifié pour renvoyer 1 ;

{

int i,j;

int s_len=strlen(source);

int t_len=strlen(target);

if(t_len>s_len)

{

retour -1;

}

pour(i=0;i

{

j=0;

int drapeau=1;

if(source[i]==cible[j])

{

int k,p=i;

pour(k=0;k {

if(source[p]==cible[j])

{

p++;

j++;

continuer ;

}

autre

{

drapeau=0;

pause;

}

}

}

autre

{

continuer ;

}

if(drapeau==1)

{

je reviens;

}

}

retour -1;

}

Programmation avec des pointeurs vers des fonctions

Les pointeurs de fonction sont parfois très utiles. Par exemple, définir un pointeur de fonction dans une structure peut implémenter des fonctionnalités similaires aux fonctions membres de la classe C++ en langage C.

Le programme suivant définit un tableau de pointeurs de fonction Selon le reste du nombre saisi (1 ou 0), la fonction correspondante peut être appelée sans if else.

//L'entrée est un nombre impair

void FuncOdd(int n)

{

float i, nItérateur = 0;

printf("Vous avez entré un nombre impair.n");

pour (i = 1; i {

nItérateur+=1/i;

}

printf("Et le résultat est : %fn",nIterator);

}

//L'entrée est un nombre pair

void FuncEven(int n)

{

float i, nItérateur = 0;

printf("Vous avez entré un nombre pair;n");

pour (i = 2; i {

nItérateur+=1/i;

}

printf("Et le résultat est : %fn",nIterator);

}

int main()

{

int nInput = 0; // Stocke le numéro saisi

void (*func[2])(int); // Définir des pointeurs de fonction pour pointer vers deux fonctions différentes

func[0] = FuncEven;

func[1] = FuncOdd;

printf("Veuillez saisir un nombre :"); // Récupérer les données de la console

scanf("%d",&nInput);

(*func[nInput%2])(nInput); // Appelez la fonction correspondante en fonction du numéro d'entrée

retour 0;

}

Utilisation du pointeur du langage C

int top ne doit pas appartenir à la catégorie des pointeurs, mais la définition des variables communes de int dépend de la façon dont il est utilisé. S'il est utilisé en fonction de nombres négatifs, 0 et positifs, on peut juger que. elle est utilisée comme cette classe. Un identifiant de définition spécial ; si cette variable est un compteur dans une boucle (ce qui signifie que lorsque le nombre de boucles augmente ou diminue), vous pouvez déterminer combien de fois la boucle a été exécutée avec succès

Reader est un nom de classe, ce qui signifie que la classe est également un type de données

Tout comme int, c'est un nom de type de données

Reader read[Maxr]; signifie qu'une variable tableau de ce type est définie. Marxr est probablement une valeur définie par une macro

.

Pourquoi peut-il être défini comme ceci ? Cela devrait être le cas parce que la classe peut contenir n'importe quel type de données (le même que struct en c), y compris les classes externes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer