Diese Funktion ersetzt deutsche Sonderzeichen in bestimmten strings. Ich soll diese Funktion so abändern, dass der neue string mit den ersetzen Umlauten (newstr) eine maximale Länge von 400 haben kann, bzw die Funktion dann abbricht. Nur hab ich 0 Plan von C 
Alles anzeigen

Quellcode
- char *replaceUmlaut( char *str, int len )
- {
- FUNKTION ("replaceUmlaut", "");
- char newstr[400], buffer[2]; //
- char dec;
- int i;
- ENTER;
- TRACEB(trctext("\nSTR mit Umlauten<%i>,<%i> <%s>\n",len,strlen(str),str));
- memset( newstr, '\0', sizeof( newstr ));
- memset( buffer, '\0', sizeof( buffer ));
- for( i=0; i< strlen(str); i++, )
- {
- dec = (int)str[i];
- if( dec == '\216' )
- strcat( newstr, "0" );
- else
- if( dec == '\192' )
- strcat( newstr, "A" );
- else
- if( dec == '\193' )
- strcat( newstr, "A" );
- /* (....) */
- else
- if( dec < 128 && dec > 0)
- {
- buffer[0] = str[i];
- strcat( newstr, buffer );
- }
- }
- memset( str, '\0', len );
- strncpy( str, newstr, len-2 );
- TRACEB(trctext("\nSTR ohne Umlaute<%i>,<%i> <%s>\n",len,strlen(str),str));
- TRACEB(trctext("\nSTR ohne Umlaute<%i>,<%i> <%s>\n",len,strlen(str),str));
- LEAVE;
- return str;
- }