Hallo. Ich habe ein Verständnisproblem was String Literale angeht.
Der folgende Code lässt sich problemlos kompilieren:
...während sich der folgende Code nicht mehr kompilieren lässt ( man beachte Zeile 9 ):
Kann mir einer erklären warum das modifizieren von str1 an dieser Stelle nicht möglich ist?
Gruß
Der folgende Code lässt sich problemlos kompilieren:
Code:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define SUB_STRING "geiler"
int main()
{
char str1[] = "Das ist ein toller Satz";
char *str2;
str2 = strstr(str1, "toller");
strncpy(str2, SUB_STRING, strlen(SUB_STRING));
puts(str1);
_getch();
return 0;
}
...während sich der folgende Code nicht mehr kompilieren lässt ( man beachte Zeile 9 ):
Code:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define SUB_STRING "geiler"
int main()
{
char *str1 = "Das ist ein toller Satz";
char *str2;
str2 = strstr(str1, "toller");
strncpy(str2, SUB_STRING, strlen(SUB_STRING));
puts(str1);
_getch();
return 0;
}
Kann mir einer erklären warum das modifizieren von str1 an dieser Stelle nicht möglich ist?
Gruß