Heim >Computer-Tutorials >Computerwissen >Implementierung von mit Zeigern geschriebenen C-Sprachfunktionen

Implementierung von mit Zeigern geschriebenen C-Sprachfunktionen

PHPz
PHPznach vorne
2024-01-24 21:39:051057Durchsuche

Implementierung von mit Zeigern geschriebenen C-Sprachfunktionen

Schreiben Sie eine Funktion in C-Sprache und verwenden Sie die Zeigermethode, um die Funktion zu implementieren

int find(char* source/*source string*/, char* target/*substring*/)//Wenn gefunden, wird die Position in der Quellzeichenfolge zurückgegeben. Wenn nicht, wird -1 zurückgegeben Ändern Sie es, um 1 zu finden und zurückzugeben, und ändern Sie Return i, um 1 zurückzugeben;

{

int i,j;

int s_len=strlen(source);

int t_len=strlen(target);

if(t_len>s_len)

{

return -1;

}

for(i=0;i

{

j=0;

int flag=1;

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

{

int k,p=i;

for(k=0;k {

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

{

p++;

j++;

weiter;

}

sonst

{

flag=0;

Pause;

}

}

}

sonst

{

weiter;

}

if(flag==1)

{

return i;

}

}

return -1;

}

Programmieren mit Zeigern auf Funktionen

Funktionszeiger sind manchmal sehr nützlich. Durch die Definition eines Funktionszeigers in einer Struktur können Funktionen implementiert werden, die den C++-Klassenmitgliedsfunktionen in der C-Sprache ähneln.

Das folgende Programm definiert ein Array von Funktionszeigern. Entsprechend dem Rest der Eingabenummer (1 oder 0) kann die entsprechende Funktion ohne if else aufgerufen werden.

//Die Eingabe ist eine ungerade Zahl

void FuncOdd(int n)

{

float i, nIterator = 0;

printf("Sie haben eine ungerade Zahl eingegeben.n");

für (i = 1; i {

nIterator+=1/i;

}

printf("Und das Ergebnis ist: %fn",nIterator);

}

//Die Eingabe ist eine gerade Zahl

void FuncEven(int n)

{

float i, nIterator = 0;

printf("Sie haben eine gerade Zahl eingegeben;n");

für (i = 2; i {

nIterator+=1/i;

}

printf("Und das Ergebnis ist: %fn",nIterator);

}

int main()

{

int nInput = 0; // Die eingegebene Zahl speichern

void (*func[2])(int); // Funktionszeiger so definieren, dass sie auf zwei verschiedene Funktionen zeigen

func[0] = FuncEven;

func[1] = FuncOdd;

printf("Bitte geben Sie eine Zahl ein:"); // Eingabe von der Konsole erhalten

scanf("%d",&nInput);

(*func[nInput%2])(nInput); // Rufen Sie die entsprechende Funktion basierend auf der Eingabenummer auf

return 0;

}

C-Sprachzeigerverwendung

int top sollte nicht zur Kategorie der Zeiger gehören, aber die Definition gemeinsamer Variablen von int hängt davon ab, wie es verwendet wird. Es kann anhand negativer Zahlen, 0 und positiver Zahlen beurteilt werden Es wird als spezielle Definitionskennung verwendet. Wenn diese Variable ein Zähler in einer Schleife ist (d. h. wenn die Anzahl der Schleifen zunimmt oder abnimmt), können Sie bestimmen, wie oft die Schleife erfolgreich ausgeführt wurde

Reader ist ein Klassenname, was bedeutet, dass die Klasse auch ein Datentyp ist

Genau wie int ist es ein Datentypname

Reader read[Maxr]; bedeutet, dass eine Array-Variable dieses Typs wahrscheinlich ein durch ein Makro definierter Wert ist

Warum kann es so definiert werden? Das liegt daran, dass die Klasse jeden Datentyp enthalten kann (derselbe wie die Struktur in c), einschließlich externer Klassen.

Das obige ist der detaillierte Inhalt vonImplementierung von mit Zeigern geschriebenen C-Sprachfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Warum friert der Computer ein?Nächster Artikel:Warum friert der Computer ein?