Смысл этого кода состоит в том, чтобы прочитать строку от пользователя (длиной менее 50 символов), а затем использовать функцию букв, чтобы поместить буквы строки в указатель таким образом, чтобы каждая буква проходила только один раз, а затем также подсчет появления каждой буквы. Наконец, с использованием функции отчета он должен вывести на экран все, что я только что объяснил. Например,
пользователь вводит «Hello», программа выводит:
H : 1
e : 1
l : 2
o : 1
код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct charact {
char ch;
int occurs;
struct charact *next;
};
typedef struct charact Char;
typedef Char * ListofChar;
typedef Char * CharNode_ptr;
void letters(char name[50], ListofChar * chars_ptr);
void report(ListofChar chars);
Char * createnode(char ch);
int main() {
char name[50];
ListofChar chars = NULL;
scanf("%s", name);
letters(name, &chars);
report(chars);
return 0;
}
Char * createnode(char ch) {
CharNode_ptr newnode_ptr ;
newnode_ptr = malloc(sizeof (Char));
newnode_ptr -> ch = ch;
newnode_ptr -> occurs = 0;
newnode_ptr -> next = NULL;
return newnode_ptr;
}
void letters(char name[50], ListofChar * lst_ptr) {
int i;
for(i=0; name[i]!='\0'; i++){
//everything is done here
}
return;
}
void report(ListofChar chars) {
int i;
// this is only to output the results
return;
}
Заранее спасибо