Hàm strchr() tìm kiếm 1 kí tự trong chuỗi string:
char *strchr(const char *s, int c)
{
const char ch = c;
for ( ; *s != ch; s++)
if (*s == ‘\0’)
return 0;
return s;
}
Tại sao cần phải return (char*) s; thay vì return s;
Hàm strchr() tìm kiếm 1 kí tự trong chuỗi string:
char *strchr(const char *s, int c)
{
const char ch = c;
for ( ; *s != ch; s++)
if (*s == ‘\0’)
return 0;
return s;
}
Tại sao cần phải return (char*) s; thay vì return s;
Chào Thang Truong Nguyen!
Bắt đầu vị trí s = &s[0]
for ( ; *s != ch; s++)
–> vị trí s = &s[n].
với s[n] là điểm cần tìm.
Nếu retrun s; thì chương trình sẽ báo lỗi. Tại sao lại thế hả b?
Chào Thang Truong Nguyen!
Theo mình nghĩ ( nếu sai xin lỗi):
const char* là con trỏ hằng. Link: [Wiki] Phân biệt con trỏ hằng và hằng con trỏ
–> không cho thay đổi giá trị. hàm trả về char* nên cần ép kiểu nó trở lại char*. từ con trỏ có thể biến thành con trỏ hằng và không thể ngược lại. Con trỏ có thể thay đổi giá trị ô nhớ!