1 phiên bản khác của hàm strlen

#include<stdio.h>
int strlen(char *s)
{
int i;
for(i=0;*s!='\0';*s++)
i++;
return i;
}

VD:Viết chương trình tính độ dài của chuỗi"Hello".

#include<stdio.h>
int strlen(char*s);
int main()
{
char s[]="Hello";
printf("Do dai cua chuoi da nhap :%d",strlen(s));
return 0;
}
int strlen(char *s)
{
int i;
for(i=0;*s!='\0';*s++)
i++;
return i;
}

Nếu có lỗi nhờ mọi người fix lại giúp mình với.Thank you vì đã đọc bài viết của mình.

4 Likes

Hoan nghênh bạn, mình cũng xin đóng góp một ý tưởng

int strlen(char* str)
{
      char *p = str;
      while(*p++);
      return (p - str - 1);
}
3 Likes

phần này mình đọc trong quyển the C programming thấy hay , nên post lên đây ai không biết có cơ hội đươc biết thôi.

2 Likes

Diễn đàn nên có những bài viết như thế này, đặc biệt là khi mình đọc mấy quyển sách hay. Không cần biết bạn giỏi hay dở như thế nào, nên chia sẻ những gì mà mình phát hiện ra, sẽ giúp mình nắm được kiến thức sâu hơn.

Trong mấy hàm này anh nghĩ là anh chỉ cần đóng góp thêm 1 ý, đó là mình nên sử dụng const char * để đảm bảo mình sẽ không thay đổi nội dung của chuỗi đầu vào.

1 Like

Nếu được anh có thể viết một bài về Address Arithmetic theo cách hiểu của anh để em tham khảo.Chứ em đọc phần đó nhưng em thấy khó hiểu quá.

1 Like

Em cứ đặt câu hỏi đi, anh giải thích nếu anh hiểu :smile:

1 Like

Nội dung mà em không hiểu khi đọc phần này đó là afree và alloc.

Ý @14520054 nói là hàm free và hàm calloc? Hàm free hủy vùng nhớ được cấp, hàm calloc cấp vùng nhớ và khởi tạo các vùng nhớ bằng 0.

Em xem tạm mấy bài con trỏ để hiểu. Các bài này anh làm cho C++, thay lệnh new = calloc, thay delete = free là được. Em xem xong không hiểu nữa thì tạo topic mới. Cho một ví dụ trong sách. Anh sẽ giải thích :smile:

Ok.Em sẽ xem video.Có gì không hiểu em sẽ hỏi anh sau.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?