#include <stdio.h>
#include <stdlib.h>
/* ************************************************************************ */
/* Function prototypes */
/* ************************************************************************ */
int strLength( ) ;
int strMirror( ) ;
int strSearch( ) ;
int strReplace( ) ;
int strSubstr( ) ;
/* ************************************************************************ */
/* Main function */
/* ************************************************************************ */
int main( )
{
int length= 0 , searchPos = 0 ;
char string[ ] = "ABC Was ich geht hier ab, wie werden wir das machen? Aber ich werde, ich werd gehen, ich werde machen, ich werde tun..." ;
// char string[] = "Thats a string to use for all the functions. The whole. The most. ";
char searchString[ ] = "ich" ;
char targetString[ 115 ] = { 0 } ;
printf ( "\n \t Original string:\n \t %s\n " , string
) ; printf ( "\n \t Searchstring:\n \t %s\n " , searchString
) ;
length = strLength( string) ;
printf ( "Length: %d\n " , length
) ;
printf ( "Mirror count: %d\n " , strMirror
( targetString
, length
, string
) ) ;
strSearch( string, length, searchString) ;
// searchPos = strSearch(string, length, sStr);
//printf("Position: %d\n", searchPos);
return 0 ;
}
/* ************************************************************************ */
/* Functions */
/* ************************************************************************ */
/* Function: enterPositiveNumber() */
int mixedSortDesc( int * mixedArrayDesc)
{
}
/* Function: strLength() */
// Die Funktion strLength soll die Länge einer Zeichenkette, die als Parameter übergeben wurde ermitteln.
// src Zeichenkette
// Rückgabewert: Länge der Zeichenkette src wenn erfolgreich, sonst -1
int strLength( const char string[ ] )
{
int i= 0 , length= 0 ;
for ( i= 0 ; string[ i] != 0 ; i++ )
{
length++;
}
return length;
}
/* Function: strMirror() */
// Die Funktion strMirror() soll eine übergebene Zeichenkette spiegeln, d.h. die Zeichenreihenfolge umdrehen.
// dStr destination string
// dStrSize maximale Länge des Zielstrings
// sourceStr source string
// Rückgabewert: Anzahl der gespiegelten Zeichen, wenn erfolgreich, sonst 0
int strMirror( char dStr[ ] , unsigned int dStrSize, const char sourceStr[ ] )
{
int i= 0 , length= dStrSize- 1 , count= 0 ;
for ( i= 0 ; i< dStrSize; i++ )
{
dStr[ length] = sourceStr[ i] ;
length--;
count++;
}
printf ( "sourceStr: %s\n " , sourceStr
) ;
return count;
}
/* Function: strSearch() */
// strSearch() suchen einer Teilzeichenkette in einer anderen Zeichenkette. Die Funktion soll eine Teilzeichenkette in einer anderen Zeichenkette finden und die Position zurückgeben.
// Str string in dem gesucht wird; maxSearch maximale Anzahl Zeichen in Str, in denen gesucht wird; sStr search string, Teilzeichenkette die gesucht werden soll
// Rückgabewert: Der Rückgabewert entspricht der Startposition des ersten Auftretens von sStr in Str wenn erfolgreich; andernfalls -1
int strSearch( const char str[ ] , unsigned int maxSearch, const char sStr[ ] )
{
int i, j, check= 0 ;
printf ( "MaxSearch: %d\n " , maxSearch
) ; printf ( "Position 0 from the search-string: %c\n " , sStr
[ 0 ] ) ; printf ( "The search-string: %s\n " , sStr
) ;
// for(i=0; i<maxSearch; i++)
// {
// if(str[i] == sStr[0] && str[i] != '\0')
// {
// printf("Position des ersten übereinstimmenden Buchstaben: %d\n", i);
// }
// }
// for(i=0; i<maxSearch; i++) // Erst wenn das erste Zeichen zusammenstimmt, dann erst restliche Buchstaben prüfen
// {
// if((str[i] != '\0') && (str[i] == sStr[0]))
// {
// for(j=1; sStr[j]!= '\0';j++) //strings werden üblicherweise mit '\\0' terminiert
// {
// if (str[i+j] == '\0') //fehlerfall: str zu kurz
// {
// printf("str zu kurz!");
// return -1;
// }
// if (str[i+j] == sStr[j])
// {
// check=1;
// }
// else
// {
// check=0;
// break;
// }
// }
// if (check == 1) // Wenn Suchwort gefunden, dann melde die Position zurück, damit gibt die funktion die erste gefundene position des sstr zurück
// {
// return i;
// }
// }
// }
//
// printf("sStr nicht gefunden!");
// return -1; // wenn sstr nicht gefunden wurde
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIHByb3RvdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCgppbnQgc3RyTGVuZ3RoKCk7CmludCBzdHJNaXJyb3IoKTsKaW50IHN0clNlYXJjaCgpOwppbnQgc3RyUmVwbGFjZSgpOwppbnQgc3RyU3Vic3RyKCk7CgovKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluIGZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwoKaW50IG1haW4oKQp7CgogICAgaW50IGxlbmd0aD0wLCBzZWFyY2hQb3MgPSAwOwogICAgCiAgICBjaGFyIHN0cmluZ1tdID0gIkFCQyBXYXMgaWNoIGdlaHQgaGllciBhYiwgd2llIHdlcmRlbiB3aXIgZGFzIG1hY2hlbj8gQWJlciBpY2ggd2VyZGUsIGljaCB3ZXJkIGdlaGVuLCBpY2ggd2VyZGUgbWFjaGVuLCBpY2ggd2VyZGUgdHVuLi4uIjsKLy8gICAgY2hhciBzdHJpbmdbXSA9ICJUaGF0cyBhIHN0cmluZyB0byB1c2UgZm9yIGFsbCB0aGUgZnVuY3Rpb25zLiBUaGUgd2hvbGUuIFRoZSBtb3N0LiAiOwogICAgY2hhciBzZWFyY2hTdHJpbmdbXSA9ICJpY2giOwogICAgY2hhciB0YXJnZXRTdHJpbmdbMTE1XSA9IHswfTsKCiAgICBwcmludGYoIlxuXHRPcmlnaW5hbCBzdHJpbmc6XG5cdCVzXG4iLCBzdHJpbmcpOwogICAgcHJpbnRmKCJcblx0U2VhcmNoc3RyaW5nOlxuXHQlc1xuIiwgc2VhcmNoU3RyaW5nKTsKCiAgICBsZW5ndGggPSBzdHJMZW5ndGgoc3RyaW5nKTsKICAgIHByaW50ZigiTGVuZ3RoOiAlZFxuIiwgbGVuZ3RoKTsKCiAgICBwcmludGYoIk1pcnJvciBjb3VudDogJWRcbiIsIHN0ck1pcnJvcih0YXJnZXRTdHJpbmcsIGxlbmd0aCwgc3RyaW5nKSk7CgogICAgc3RyU2VhcmNoKHN0cmluZywgbGVuZ3RoLCBzZWFyY2hTdHJpbmcpOwoKICAgIC8vIHNlYXJjaFBvcyA9IHN0clNlYXJjaChzdHJpbmcsIGxlbmd0aCwgc1N0cik7CiAgICAvL3ByaW50ZigiUG9zaXRpb246ICVkXG4iLCBzZWFyY2hQb3MpOwoKICAgIHJldHVybiAwOwp9CgovKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwoKLyogICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZW50ZXJQb3NpdGl2ZU51bWJlcigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCgppbnQgbWl4ZWRTb3J0RGVzYyhpbnQgKm1peGVkQXJyYXlEZXNjKQp7Cgp9CgovKiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBzdHJMZW5ndGgoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKLy8gICAgRGllIEZ1bmt0aW9uIHN0ckxlbmd0aCBzb2xsIGRpZSBMw6RuZ2UgZWluZXIgWmVpY2hlbmtldHRlLCBkaWUgYWxzIFBhcmFtZXRlciDDvGJlcmdlYmVuIHd1cmRlIGVybWl0dGVsbi4KLy8gICAgc3JjIFplaWNoZW5rZXR0ZQovLyAgICBSw7xja2dhYmV3ZXJ0OiBMw6RuZ2UgZGVyIFplaWNoZW5rZXR0ZSBzcmMgd2VubiBlcmZvbGdyZWljaCwgc29uc3QgLTEKCmludCBzdHJMZW5ndGgoY29uc3QgY2hhciBzdHJpbmdbXSkKewogICAgaW50IGk9MCwgbGVuZ3RoPTA7CgogICAgZm9yKGk9MDsgc3RyaW5nW2ldICE9IDA7IGkrKykKICAgIHsKICAgICAgICBsZW5ndGgrKzsKICAgIH0KCiAgICByZXR1cm4gbGVuZ3RoOwp9CgovKiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBzdHJNaXJyb3IoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKLy8gICAgRGllIEZ1bmt0aW9uIHN0ck1pcnJvcigpIHNvbGwgZWluZSDDvGJlcmdlYmVuZSBaZWljaGVua2V0dGUgc3BpZWdlbG4sIGQuaC4gZGllIFplaWNoZW5yZWloZW5mb2xnZSB1bWRyZWhlbi4KLy8gICAgICAgIGRTdHIgZGVzdGluYXRpb24gc3RyaW5nCi8vICAgICAgICBkU3RyU2l6ZSBtYXhpbWFsZSBMw6RuZ2UgZGVzIFppZWxzdHJpbmdzCi8vICAgICAgICBzb3VyY2VTdHIgc291cmNlIHN0cmluZwovLyAgICBSw7xja2dhYmV3ZXJ0OiBBbnphaGwgZGVyIGdlc3BpZWdlbHRlbiBaZWljaGVuLCB3ZW5uIGVyZm9sZ3JlaWNoLCBzb25zdCAwCgppbnQgc3RyTWlycm9yKGNoYXIgZFN0cltdLCB1bnNpZ25lZCBpbnQgZFN0clNpemUsIGNvbnN0IGNoYXIgc291cmNlU3RyW10pCnsKICAgIGludCBpPTAsIGxlbmd0aD1kU3RyU2l6ZS0xLCBjb3VudD0wOwoKICAgIGZvcihpPTA7IGk8ZFN0clNpemU7IGkrKykKICAgIHsKICAgICAgICBkU3RyW2xlbmd0aF0gPSBzb3VyY2VTdHJbaV07CiAgICAgICAgbGVuZ3RoLS07CiAgICAgICAgY291bnQrKzsKICAgIH0KCiAgICBwcmludGYoInNvdXJjZVN0cjogJXNcbiIsIHNvdXJjZVN0cik7CgogICAgcmV0dXJuIGNvdW50Owp9CgovKiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBzdHJTZWFyY2goKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKLy8gICAgc3RyU2VhcmNoKCkgc3VjaGVuIGVpbmVyIFRlaWx6ZWljaGVua2V0dGUgaW4gZWluZXIgYW5kZXJlbiBaZWljaGVua2V0dGUuIERpZSBGdW5rdGlvbiBzb2xsIGVpbmUgVGVpbHplaWNoZW5rZXR0ZSBpbiBlaW5lciBhbmRlcmVuIFplaWNoZW5rZXR0ZSBmaW5kZW4gdW5kIGRpZSBQb3NpdGlvbiB6dXLDvGNrZ2ViZW4uCi8vICAgIFN0ciBzdHJpbmcgaW4gZGVtIGdlc3VjaHQgd2lyZDsgbWF4U2VhcmNoIG1heGltYWxlIEFuemFobCBaZWljaGVuIGluIFN0ciwgaW4gZGVuZW4gZ2VzdWNodCB3aXJkOyBzU3RyIHNlYXJjaCBzdHJpbmcsIFRlaWx6ZWljaGVua2V0dGUgZGllIGdlc3VjaHQgd2VyZGVuIHNvbGwKLy8gICAgUsO8Y2tnYWJld2VydDogRGVyIFLDvGNrZ2FiZXdlcnQgZW50c3ByaWNodCBkZXIgU3RhcnRwb3NpdGlvbiBkZXMgZXJzdGVuIEF1ZnRyZXRlbnMgdm9uIHNTdHIgaW4gU3RyIHdlbm4gZXJmb2xncmVpY2g7IGFuZGVybmZhbGxzIC0xCgppbnQgc3RyU2VhcmNoKGNvbnN0IGNoYXIgc3RyW10sIHVuc2lnbmVkIGludCBtYXhTZWFyY2gsIGNvbnN0IGNoYXIgc1N0cltdKQp7CiAgICBpbnQgaSwgaiwgY2hlY2s9MDsKCiAgICBwcmludGYoIk1heFNlYXJjaDogJWRcbiIsIG1heFNlYXJjaCk7CiAgICBwcmludGYoIlBvc2l0aW9uIDAgZnJvbSB0aGUgc2VhcmNoLXN0cmluZzogJWNcbiIsIHNTdHJbMF0pOwogICAgcHJpbnRmKCJUaGUgc2VhcmNoLXN0cmluZzogJXNcbiIsIHNTdHIpOwoKLy8gICAgZm9yKGk9MDsgaTxtYXhTZWFyY2g7IGkrKykKLy8gICAgewovLyAgICAgICAgaWYoc3RyW2ldID09IHNTdHJbMF0gJiYgc3RyW2ldICE9ICdcMCcpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgcHJpbnRmKCJQb3NpdGlvbiBkZXMgZXJzdGVuIMO8YmVyZWluc3RpbW1lbmRlbiBCdWNoc3RhYmVuOiAlZFxuIiwgaSk7Ci8vICAgICAgICB9Ci8vICAgIH0KCgovLyAgICBmb3IoaT0wOyBpPG1heFNlYXJjaDsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXJzdCB3ZW5uIGRhcyBlcnN0ZSBaZWljaGVuIHp1c2FtbWVuc3RpbW10LCBkYW5uIGVyc3QgcmVzdGxpY2hlIEJ1Y2hzdGFiZW4gcHLDvGZlbgovLyAgICB7Ci8vICAgICAgICBpZigoc3RyW2ldICE9ICdcMCcpICYmIChzdHJbaV0gPT0gc1N0clswXSkpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgZm9yKGo9MTsgc1N0cltqXSE9ICdcMCc7aisrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zdHJpbmdzIHdlcmRlbiDDvGJsaWNoZXJ3ZWlzZSBtaXQgJ1xcMCcgdGVybWluaWVydAovLyAgICAgICAgICAgIHsKLy8gICAgICAgICAgICAgICAgaWYgKHN0cltpK2pdID09ICdcMCcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2ZlaGxlcmZhbGw6IHN0ciB6dSBrdXJ6Ci8vICAgICAgICAgICAgICAgIHsKLy8gICAgICAgICAgICAgICAgICAgIHByaW50Zigic3RyIHp1IGt1cnohIik7Ci8vICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci8vICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICAgICAgaWYgKHN0cltpK2pdID09IHNTdHJbal0pCi8vICAgICAgICAgICAgICAgIHsKLy8gICAgICAgICAgICAgICAgICAgIGNoZWNrPTE7Ci8vICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICAgICAgZWxzZQovLyAgICAgICAgICAgICAgICB7Ci8vICAgICAgICAgICAgICAgICAgICBjaGVjaz0wOwovLyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci8vICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICB9Ci8vICAgICAgICAgICAgaWYgKGNoZWNrID09IDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2VubiBTdWNod29ydCBnZWZ1bmRlbiwgZGFubiBtZWxkZSBkaWUgUG9zaXRpb24genVyw7xjaywgZGFtaXQgZ2lidCBkaWUgZnVua3Rpb24gZGllIGVyc3RlIGdlZnVuZGVuZSBwb3NpdGlvbiBkZXMgc3N0ciB6dXLDvGNrCi8vICAgICAgICAgICAgewovLyAgICAgICAgICAgICAgICByZXR1cm4gaTsKLy8gICAgICAgICAgICB9Ci8vICAgICAgICB9Ci8vICAgIH0KLy8KLy8gICAgcHJpbnRmKCJzU3RyIG5pY2h0IGdlZnVuZGVuISIpOwovLyAgICByZXR1cm4gLTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlbm4gc3N0ciBuaWNodCBnZWZ1bmRlbiB3dXJkZQp9Cg==