当前位置:   article > 正文

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

c 分配字符数组 maloc

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

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

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

动态创建不大于50字节的一维字符数组(大小由用户输入,范围为0<n<=50),并输入不超过n的字符串s。编程将s字符串中的数字字符转换成对应的数值,计算出这些数值的累加和并输出。已知数字0的ASCII码为48,数字9的ASCII码为57。

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

输出格式:
一个整数。

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

40
abs5def126jkm8

输出样例:

22

输入样例:

30
adbdesdgdgdgdgd

输出样例:

0

上代码

#include<stdio.h>
#include<malloc.h>

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/575487
推荐阅读
相关标签
  

闽ICP备14008679号