Kusarr
Software-Overclocker(in)
Visual Studio ~ "Debugging-Vorgang dauert länger als erwartet" ...
hallo,
hab derzeit ein Problem mit meinem Programm:
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:
hallo,
hab derzeit ein Problem mit meinem Programm:
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
*/
}