Neuestes Algorithmus-Wörterbuch in C-Sprache (geschrieben von Haruhiko Okumura / 1991, erste Ausgabe der Firma für technische Überprüfung: 249 Seiten)
Es ist ein Algorithmus, der Blöcke in einer Zeichenfolge ersetzt.
(Folgendes wird aus dem Referenzmaterial zitiert)
Das Verschieben von Block 12345 nach Block abcd in einem Editorbefehl, z. B. Text xyz12345abcdefg, führt zu xyzabcd12345efg. Diese Operation besteht auch darin, 12345 und abcd zu tauschen oder 12345abcd um 4 Zeichen nach rechts zu drehen.
Dieses Mal haben wir einen Prozess implementiert, um die Wörter "PROGRAMMIERPRINZIPIEN", die aus zwei Wörtern "PROGRAMMIEREN" und "PRINZIPIEN" bestehen, durch "PRINZIPIENPROGRAMMIEREN" zu ersetzen.
moveblock.c
/*Block verschieben Block verschieben*/
#include <stdio.h>
#include <stdlib.h>
char sentense[] = "PROGRAMMINGPRINCIPLES";
int main(void) {
printf("%s\n",sentense);
//Rufen Sie die String-Verschiebungsfunktion auf
rotate(0, 10, 20);
printf("%s\n", sentense);
return EXIT_SUCCESS;
}
//String-Inversionsfunktion
//Wenn die Zeichenfolgenlänge ungerade ist, wird nur das mittlere Zeichen nicht invertiert
void reverse(int i,int j){
//Tmp-Variable zum Ersetzen
int t;
while(i < j){
t = sentense[i];
sentense[i] = sentense[j];
sentense[j] = t;
//Verschieben Sie die Position der zu verarbeitenden Zeichenfolge nacheinander
i++;
j--;
printf("%s i=%d j=%d (reverse)\n", sentense, i, j);
}
}
//String-Bewegungsfunktion
//Rufen Sie die Umkehrfunktion auf
//Erstes Argument: Startposition des linken Teils der zu ersetzenden Zeichenfolge
//Zweites Argument: Startposition des rechten Teils der zu ersetzenden Zeichenfolge
//Drittes Argument: Die gesamte zu ersetzende Zeichenfolge
void rotate(int left, int mid, int right){
reverse(left, mid);
reverse(mid + 1,right);
reverse(left, right);
}
Das Ergebnis war wie erwartet.
result.txt(Irgendein)
Success #stdin #stdout 0s 4488KB
PROGRAMMINGPRINCIPLES
GROGRAMMINPPRINCIPLES i=1 j=9 (reverse)
GNOGRAMMIRPPRINCIPLES i=2 j=8 (reverse)
GNIGRAMMORPPRINCIPLES i=3 j=7 (reverse)
GNIMRAMGORPPRINCIPLES i=4 j=6 (reverse)
GNIMMARGORPPRINCIPLES i=5 j=5 (reverse)
GNIMMARGORPSRINCIPLEP i=12 j=19 (reverse)
GNIMMARGORPSEINCIPLRP i=13 j=18 (reverse)
GNIMMARGORPSELNCIPIRP i=14 j=17 (reverse)
GNIMMARGORPSELPCINIRP i=15 j=16 (reverse)
GNIMMARGORPSELPICNIRP i=16 j=15 (reverse)
PNIMMARGORPSELPICNIRG i=1 j=19 (reverse)
PRIMMARGORPSELPICNING i=2 j=18 (reverse)
PRIMMARGORPSELPICNING i=3 j=17 (reverse)
PRINMARGORPSELPICMING i=4 j=16 (reverse)
PRINCARGORPSELPIMMING i=5 j=15 (reverse)
PRINCIRGORPSELPAMMING i=6 j=14 (reverse)
PRINCIPGORPSELRAMMING i=7 j=13 (reverse)
PRINCIPLORPSEGRAMMING i=8 j=12 (reverse)
PRINCIPLERPSOGRAMMING i=9 j=11 (reverse)
PRINCIPLESPROGRAMMING i=10 j=10 (reverse)
PRINCIPLESPROGRAMMING
Recommended Posts