Я новичок в связанном списке и надеюсь, что кто-нибудь мне поможет.
Домашнее задание хочет: ввести строку (от пользователя), сохранить ее в связанном списке и сосчитать появившиеся буквы.Например: input: hello output: 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;
}
/*code*/
void letters(char name[50], ListofChar *lst_ptr) {
int i;
Char *temp=NULL;
Char *p=NULL;
for(i=0;name[i]!='\0';i++){
createnode(name[i]);
}
return;
}
void report(ListofChar chars) {
while(chars!=NULL){
printf("%c",chars->ch);
chars=chars->next;
}
return;
}