C语言——动态分配数组malloc的使用及读走回车换行符问题

好久没有写C语言了,用了malloc动态分配数组但是却忘了到如malloc.h的头文件,报了错都不到为什么,还是太大意了,时间长了,C语言都忘得差不多了!
而且多个输入函数scanf()连着使用的时候一定要注意回车换行符!特别是多次输入中混着字符串的输入,一定要把回车换行符读走,不然会被读进字符或者字符串里面影响运行结果!

使用一些函数的时候要是报了奇怪的错误却不知道为什么那就要想想是不是要导入相应的头文件!

求一维字符数组中的数字和

动态创建不大于50字节的一维字符数组(大小由用户输入,范围为0

输入格式:
用户输入一个1到50之间的整数,并回车。 在第二行输入一个字符串,假定用户输入的字符串只包含大小写字母和数字,不会含有空格和特殊符号。

输出格式:
一个整数。

输入样例:
输入40代表字符串长度不超过40。对下面用户输入的字符串,其中的数字加起来是:5+1+2+6+8=22

40
abs5def126jkm8

输出样例:

22

输入样例:

30
adbdesdgdgdgdgd

输出样例:

0

上代码

#include
#include

int main(){
    int n,sum=0;
    scanf("%d",&n);
    char *j;
    char *p = (char*)malloc(n*sizeof(char));
    char c =getchar();
    gets(p);
    
    for(;*p != '\0';p++){
        if(*p>47 && *p<58){
            sum += (*p-48);
        }
    }
    printf("%d\n",sum);
    
    return 0;
}

你可能感兴趣的:(编程题,c语言,字符串,数组)