Mấy anh/chị cho em hỏi khi em nhập chuỗi vào thì khi đếm số lượng phần tử trong chuỗi thì có vẻ như nó đếm luôn dấu Enter đúng không ạ? Em ko biết phải sửa lại như thế nào ạ?
Code của em:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
#define MAX 300
void DemKyTu(char s[]);
int myStrlen(char s[], int k);
int main()
{
char s[MAX];
fgets(s,MAX,stdin); //Nhap chuoi s
DemKyTu(s);
return 0;
}
void mangKyTuPhanBiet(char *s, char *s1){
int n=0;
s1[n++]=s[0];
for (int i=1; s[i]!='\0'; i++){
int check=1;
for (int j=i-1; j>=0; j--){
if (s[i] == s[j]){
check=0;
break;
}
}
if (check == 1){
s1[n++]=s[i];
}
}s1[n]='\0';
}
void DemKyTu(char *s){
char s1[MAX];
mangKyTuPhanBiet(s,s1);
for (int i=0; i<myStrlen(s1,0); i++){
int dem=0;
for (int j=0; j<myStrlen(s,0); j++){
if (s1[i]==s[j])
dem++;
}
cout<<s1[i]<<": "<<dem<<"\n";
}
}
int myStrlen(char *s, int k){
for (; s[k]!='\0'; k++);
return k;
}
Output của đề bài:
Output của em: