Visual Studio ~ "Debugging-Vorgang dauert länger als erwartet" ...

Kusarr

Software-Overclocker(in)
Visual Studio ~ "Debugging-Vorgang dauert länger als erwartet" ...

hallo,
hab derzeit ein Problem mit meinem Programm:
bug.png

Nutze Visual Studio 2015 Community

Ich weiß, dass das Programm funktioniert, lief ja schon. daas letzte mal hab ich das Project komplett gelöscht und nochma reingemacht, dann gings wieder. nun schon wieder das oben zu sehende Problem -.- ...
Was is das? Brauche dringend dauerhafte Lösung, am Mittwoch muss ich das Programm zeigen und dann wäre das Problem echt fatal :(

Programm-Code:
Code:
/**
 * @file   aufgabe2-pointer.c
 * @brief  Aufgabe2 - Pointermanipulationen
 */


#include <stdio.h>
 // Falls notwendig erweitern Sie die Liste der includes


 /**
	@brief Aufgabe2a: Scannen durch einen String
	@param [in] char* input
	@return char*


 Input ist ein String der aus alphanumerischen Zeichen besteht die
 durch :: getrennt sein koennen. Als Beispiele betrachte man


 <p>


 <ul>
   <li> "Ha::ll::o"
   <li> "47::11"
 </ul>


 Ihre Aufgabe ist es eine Funktion zu schreiben die den
 laengsten suffix (Endung) liefert der kein :: enthaelt.
 Laengste Endungen fuer unsere Beispiele:
 <ul>
   <li> "o"
   <li> "11"
 </ul>


 <p>


 Input ist der String (char pointer), das Ergebnis soll als
 return Wert geliefert werden, welcher ein Zeiger auf den
 Anfang der laengsten Endung ohne :: ist.


  */


char* extract(char* input) {
	char* tmp = input;


	while (*input != '\0') {
		if (*input == ':') {
			input++;
			while (*input == ':') {
				input++;
				tmp = input;
			}
		}
		input++;
	}


	return tmp;
}


/**
   @brief Aufgabe2b: Variation von 2a
   @param [in] char* input
   @param [out] char** output


Das Ergebnis soll hier nicht als return Wert geliefert werden.
Anstatt wird ein pointer auf einen pointer verwendet.
Wieso reicht ein pointer nicht aus?
*/


void extract2(char* input, char** output) {
	*output = extract(input);
}


/**
   @brief Aufgabe2c: Weitere Variation von Scannen
   @param [in] char* input
   @return int


Input ist ein String der aus einer Liste von alphanumerischen Woertern
die durch Leerzeichen (white-space) getrennt sind.
Ihre Aufgabe ist es eine Funktion zu schreiben, die die Anzahl der
Woerter zaehlt.
<p>
Beispiel:  "Ha ll o 5"
<p>
Soll liefern 4
*/


int count(char* input) {
	int wordCounter = 1;


	while (*input == ' ') {
		input++;
	}
	if (*input == '\0') {
		return 0;
	}


	while (*input != '\0') {
		if (*input == ' ') {
			wordCounter++;
			while (*input == ' ') {
				input++;
			}
			if (*input == '\0') {
				wordCounter--;
			}
		} else {
			input++;
		}
	}


	return wordCounter;
}




/**
   @brief Aufgabe2d: Aufsammeln von Woertern. Erweiterung von Aufgabe2c.
   @param [in] char* line
   @param [in] int maxwords
   @param [out] char* words[]
   @return int Anzahl aufgesammelter Woerter


Gegeben (als Input) ist ein String der aus einer Liste von alphanumerischen
Woertern die durch Leerzeichen (white-space) getrennt sind.
Ihre Aufgabe ist es die Woerter in einem Array von Strings aufzusammeln.
Das Array von Strings words wird pre-allokiert mit fester Groesse (maxwords).
Die Anzahl der aufgesammelten Woerter wird als return Wert zurueck
geliefert.


*/


int breakIntoWords(char *line, int maxwords, char *words[]) {
	int counter = 0;


	while (counter < maxwords) {
		while (*line == ' ') {
			line++;
		}
		if (*line == '\0') {
			return counter;
		}


		words[counter] = line;


		while (*line != ' ' && *line != '\0') {
			line++;
		}
		counter++;
		if (*line == '\0') {
			return counter;
		}
		*line = '\0';


		line++;
	}




	return counter;
}




void testExtract() {
	printf("Testmethode Extract\n");
	printf(extract(":ll::1"));
	printf("\n");
	printf(extract("Ha::ll::2"));
	printf("\n");
	printf("leer", extract("::"));
	printf("\n");
	printf(extract(":::::ll::o3"));
	printf("\n");
	printf("leer", extract(""));
	printf("\n");
	printf(extract("::::saa:asS:.S.a.s.::A:S.::asas"));
	printf("\n\n");
}








int main() {
	char sentence[] = "   ";
	char* words[5];
	int test = breakIntoWords(sentence, 2, words);
	printf("%i", test);


	getch();


	


	printf("Testmethode Extract2\n");
	char* b = extract("Ha::ll::o");
	char** result = &b;
	extract2("Ha::ll::extract2", result);
	printf(*result);
	printf("\n\n");


	printf("Testmethode Count\n");
	//printf("Satz: %s\nAnzahl Woerter: %i\n", "ha ll o", count("ha ll o"));
	char x1[] = "ha ll o";
	int y1 = count(x1);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x1, y1);
	char x2[] = "";
	int y2 = count(x2);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x2, y2);
	char x3[] = "Homoeophobie";
	int y3 = count(x3);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x3, y3);
	char x4[] = "Ich bin    hier zu      Hause";
	int y4 = count(x4);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x4, y4);
	char x5[] = "I   b u u II  u";
	int y5 = count(x5);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x5, y5);
	char x6[] = " My name   is Horst! ";
	int y6 = count(x6);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x6, y6);
	char x7[] = "       ";
	int y7 = count(x7);
	printf("Satz: %s\nAnzahl Woerter: %i\n", x7, y7);


	getch();






	// Ihre Testroutinen


	/* Beispieltest fuer Aufgabe2d
  char line[] = "this is a test";
	  int i;
		  int nwords;
		  char* words[10];


	  nwords = breakIntoWords(line, 10, words);
	  for(i = 0; i < nwords; i++)
		  printf("%s\n", words[i]);


   soll liefern


  this
  is
  a
  test


	*/
}
 
Zurück