Tôi đang cố gắng thực hiện điều gì đó thực sự cơ bản trên C nhưng tôi vẫn nhận được lỗi phân đoạn. Tất cả những gì tôi muốn làm là thay thế một chữ cái của một từ bằng một chữ cái khác - trong ví dụ này thay thế chữ L. bằng L. Có thể ai giúp giải thích nơi tôi đã đi sai không? Nó phải là một vấn đề thực sự cơ bản tôi nghĩ, tôi chỉ không có ý tưởng tại sao nó không hoạt động.Thay thế phần tử ký tự riêng lẻ của một chuỗi C
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
char *string1;
string1 = "hello";
printf("string1 %s\n", string1);
printf("string1[2] %c\n", string1[2]);
string1[2] = 'L';
printf("string1 %s\n", string1);
return 0;
}
Đối với đầu ra của tôi, tôi có được
chuỗi1 chào
string1 [2] l
Segmentation lỗi
Cảm ơn!
String1 là một con trỏ tới bộ nhớ chỉ đọc (trong hầu hết các hệ thống) vì nó là bộ khởi tạo không đổi. Bạn không thể ghi vào chuỗi đó mà không sao chép nó trước. – gaige