Programmiersprache: C
ja stimmt, im moment stehe ich an. danke trotzdem.
ich probier aber nochmal eine zusammenfassung der gesamten programm situation zu beschreiben,
vielleicht hat ja jemand einen ansatz, da der ja nicht geht.
aufgabenstellung:
programm array mit einem zeichen pro position im main.
dieses wird als zeiger an eine funktion "aendern" übergeben. (globale variablen sind nicht erlaubt)
diese funktion "ändern" soll nun an der eingegebenen position den bestehenden inhalt auf den eingegeben ändern.
eingabe: -> aendern 2 aab
also an array position 2 den inhalt "aab".
funktion abgeschlossen.
wenn man dann innerhalb einer anderen funktion, außerhalb von main oder auch im main, ein print von position 2 macht, soll "aab" ausgegeben werden.
anbei ein code beispiel für die änderung eines zeichens.
ich ändere hier, hardcodet die position 0 von t auf n in der funktion "ändern"
und gebe die änderung an das eigentliche array zurück und lese es in der funktion "schauen" aus.
nur soll anstelle von "n" hier eben "aab" stehen, und bei printf prog 0 auch aab ausgegeben werden;
(das letzte strcpy funktioniert nicht, nicht wundern; aber zum veranschaulichen reichts denke ich)
ja stimmt, im moment stehe ich an. danke trotzdem.
ich probier aber nochmal eine zusammenfassung der gesamten programm situation zu beschreiben,
vielleicht hat ja jemand einen ansatz, da der ja nicht geht.
aufgabenstellung:
programm array mit einem zeichen pro position im main.
dieses wird als zeiger an eine funktion "aendern" übergeben. (globale variablen sind nicht erlaubt)
diese funktion "ändern" soll nun an der eingegebenen position den bestehenden inhalt auf den eingegeben ändern.
eingabe: -> aendern 2 aab
also an array position 2 den inhalt "aab".
funktion abgeschlossen.
wenn man dann innerhalb einer anderen funktion, außerhalb von main oder auch im main, ein print von position 2 macht, soll "aab" ausgegeben werden.
anbei ein code beispiel für die änderung eines zeichens.
ich ändere hier, hardcodet die position 0 von t auf n in der funktion "ändern"
und gebe die änderung an das eigentliche array zurück und lese es in der funktion "schauen" aus.
nur soll anstelle von "n" hier eben "aab" stehen, und bei printf prog 0 auch aab ausgegeben werden;
(das letzte strcpy funktioniert nicht, nicht wundern; aber zum veranschaulichen reichts denke ich)
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int aendern(char**);
int schauen(char**);
int main(){
char *strings = "test";
printf ("main vorher: %s\n", strings);
printf ("main vorher pos 0: %c\n", strings[0]);
aendern(&strings);
printf ("main nachher: %s\n", strings);
printf ("main nachher pos 0: %c\n", strings[0]);
schauen(&strings);
return 0;
}
int aendern(char** strings){
printf ("aendern vorher: %s\n", *strings);
printf ("aendern vorher pos 0: %c\n", *strings[0]);
char program[strlen(*strings)];
strcpy(program, *strings);
program[0] = 'n';
printf ("aendern nachher: %s\n", program);
printf ("aendern nachher pos 0: %c\n", program[0]);
strcpy(*strings, program);
return 0;
}
int schauen(char** strings){
char program[strlen(*strings)];
strcpy(program, *strings);
printf ("schauen pos 0: %c\n", program[0]);
return 0;
}
Zuletzt bearbeitet: