string zusammensetzen
-
hallo! ich versuche einfach eine string zusammen zu setzen. leider will mir das einfach nicht gelingen. je na dem welche if bedingung zur wirkung kommt soll ein betimmtes zeichen angefügt werden. dazu hab ich versucht die funktion strcat zuu verwenden. hier mal der code
char wegs[1000];//global defniniert ... int weg(int start_z, int start_s, int ziel_z, int ziel_s) { strcpy (wegs,"o"); if((start_z == ziel_z) && (start_s==ziel_s)) { labyrinth[start_z][start_s]='+'; return 1; } if(labyrinth[start_z-1][start_s]=='.') { labyrinth[start_z][start_s] ='^'; strcat (wegs,"o");//einfügen eines 'o' if(weg(start_z-1, start_s, ziel_z, ziel_s)) return 1; } if(labyrinth[start_z+1][start_s]=='.') { labyrinth[start_z][start_s]='v'; strcat (wegs,"u");//einfügen eines 'u' if(weg(start_z+1, start_s, ziel_z, ziel_s)) return 1; } if(labyrinth[start_z][start_s-1]=='.') { labyrinth[start_z][start_s]='<'; strcat(wegs,"l");//einfügen eines 'l' if(weg(start_z, start_s-1, ziel_z, ziel_s)) return 1; } if (labyrinth[start_z][start_s+1]=='.') { labyrinth[start_z][start_s]='>'; strcat(wegs,"r");//einfügen eines 'r' if(weg(start_z, start_s+1, ziel_z, ziel_s)) return 1; } labyrinth[start_z][start_s]='.'; return 0; }
Jedoch zeigt nur das oberste strcpy seine wirkung aber die restlichen buchstaben werden nicht eingefügt. kann mir da jemand den grund nennen?
gruß niesel
-
strcpy (wegs,"o"); rufst du auch in den rekursiveb sub-aufrufen auf. das zerhaut dir jedesmal den string.