Archiv verlassen und diese Seite im Standarddesign anzeigen : array incrementieren...
Taktloss
09-05-2004, 13:43
Hi all,
ich brauche einen Algorithmus mit wessen hilfe ich ein ganzes array inkerementieren kann.
soll dann so aussehen:
a
b
c
....
aa
ab
ac
....
usw.
Ich habe versucht mir sowas selber zu schreiben, allerdings gestaltet sich die Sache ein wenig schwieriger :rolleyes:
Kennt da jemand einen fertigen algo oder ein GNU projekt wo man sie so einen algo "klauen" (mit verweis auf autor natürlich) klauen kann?
MfG. Takt
Nein, kennen tu ich sowas nicht wirklich, aber sollte doch nicht so schwer sein..
Du willst also nichts anderes machen als aus a->b und aus z->aa stimmts?
Nun, das Problem dass du hast ist, dass du aus einem zeichen 2 machen wilst und das ganze somit eigentlich keine klassische Array Anwendung mehr ist. Wenn du bei ein-zeichen bleibst, ist das ganze ziemlich easy, andernfalls würde ich dir eine Liste empfehlen.
Für einzeichen-Programme, da hast du aber das Problem, dass er z in unsichbare Zeichen umwandelt.
int len, i;
for(i=0; i < len; i++)
{
array[i]++;
}
Für mehrzeichenumwandlung kann ich dir nur einen Ansatz liefern:
Du machst mal ein Array wo Pointer auf die einzelnen Zeichenketten drinnen stehen (welche einzeln inkrementiert werden sollen.
Du wanderst jetzt einfach dieses Array durch:
char * stringElements[20];
//array füllen... (unsauber!)
stringElements = (char*) malloc(10);
....
...
int len, i, strlen;
for(i=0; i < len; i++)
{
strlen = strlen(stringElements[i]);
//Es kommt auf das letzte Zeichen an, ob String verländert werden muss.
if(stringElements[i][strlen-1] != 'z')
{
stringElements[i][strlen-1]++;
}else
{
char* old_mem = stringElements[i];
stringElements[i] = (char*) malloc(strlen+1);
strcpy(alle zeichen vom oldmem in neuen reinkopieren);
stringElemenzs[i][strlen] = 'a'; //Neues Zeichen ist ein a -> auchtung wegen array-indizierung.
free(old_mem);
}
}
Lg
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.