Em chào anh/chị
Chuyện là em có viết một hàm đơn giản shorten(char *s1, new_line).
Đại khái là nếu s1 = “hello” có độ dài bằng 5, và new_line bằng 3 thì em phải làm sao để kết quả chỉ còn là “hel”.
Đây là hàm mà em viết, ban đầu em cứ tưởng là hàm viết sai khi cho rằng string không thể thay đổi character bằng cách sử dụng index.
Tuy nhiên lỗi lại ở code em viết trong main.
Dưới đây là phần code đúng em đã viết:
void shorten(char *s1, int new_len)
{
int strSize = strlen(s1);
if (strSize <= new_len)
{
puts("No change");
}
else
{
s1[new_len] = '\0';
}
Và đây là phần code main sai khi em sử dụng char *str = “hello” sau đó shorten(str, 3).
Các anh chị có thể cho em hỏi vì sao lại có sự khác nhau như vậy được không?
Và có phải đó là quy định ràng buộc mỗi khi em tạo một biến string thì buộc phải thông qua hàm rồi mới từ con trỏ để trỏ tới nó không.
Em cảm ơn.