Nếu chỉ đếm số kí tự thì bạn có thể làm như thế này:
Code:
char flag[256];
memset(flag, 0, sizeof(flag));
int count = 0;
int len = strlen(s);
int i;
for(i = 0; i < len; ++i)
{
if(flag[s[i]] == 0)
{
flag[s[i]] = 1;
++count;
}
}
printf("The string has %d characters!\n", count);
s là chuỗi cần đếm, count là kết quả
Còn nếu muốn có chuỗi s2 như bạn ở trên thì có thể sửa lại:
Code:
char flag[256];
memset(flag, 0, sizeof(flag));
int count = 0;
int len = strlen(s);
int i;
for(i = 0; i < len; ++i)
{
if(flag[s[i]] == 0)
{
s2[count] = s[i];
flag[s[i]] = 1;
++count;
}
}
s2[count] = NULL;
printf("The string has %d characters!\n", count);
printf("s2 = %s", s2);
p/s: bài của bạn khi flag++; thì ko cần phải cho chạy vòng lặp for bên trong làm j nữa bạn à.
Bookmarks