编程的时候被布置了好些个小难题,就这4题目做不出,帮忙解决下,谢谢了,最好不要用C++,只用C语言,又注释让我看懂就更好了。

1.编制一个自定义函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。
2.不使用库函数,实现strlen函数的编写:形参类型为字符数组或字符串,要求统计字符串str中字符的个数。返回字符个数。函数原型为:unsigned int strlen (char *str)。
3.实现任意输入数值,建立一个单向链表,并按反向进行输出。
4.已知某数列前两项分别为2和3,其后继项根据数列最后两项的

乘积,按下列规则生成:
    (1)若乘积为一位数,则该乘积即为数列的后继项;
    (2)若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的两个后继项。
    编制程序计算数列前20 项之和并输出数列中的各项(要求将数列前20项保存在数组中且不可多存)。
   (例如,数列前10项为:2,3,6,1,8,8,6,4,2,4)