strstr() を使用して、文字列内の部分文字列を見つけようとしています。char[] の使用のみが機能し、char* は機能せず、セグメンテーション エラーが発生します。
したがって、これは機能しています:
int main() {
char str[] = "apple apple peach";
char *p;
p = strstr(str, "peach");
if (p!= NULL) {
strncpy(p, "apple", 5);
}
return 0;
}
しかし、これは機能していません:
int main() {
char *str = "apple apple peach";
char *p;
p = strstr(str, "peach");
if (p!= NULL) {
strncpy(p, "apple", 5);
}
return 0;
}
これはどちらでもありません:
int main() {
char *str = "apple apple peach";
char *peach = "peach";
char *p;
p = strstr(str, peach);
if (p!= NULL) {
strncpy(p, "apple", 5);
}
return 0;
}
そして、これも:
int main() {
char *str = "apple apple peach";
char peach[] = "peach";
char *p;
p = strstr(str, peach);
if (p!= NULL) {
strncpy(p, "apple", 5);
}
return 0;
}
それは既知のバグまたは機能ですか?