c语言编程输入一串字符 分别统计其中,C编程:接收从键盘上输入的一串字符,随后分别统计其中字母、数字符号的数目并打印出来。...

#include#include#include#define INI20#define INC 10char* input;//指向动态数组int get_input();//用于接收输入值的函数,使用动态数组可以任意输入,无大小限制void ini();//系统初始化bool is_exit();//检测是否退出int split();//将字符串分解出6位的数字bool is_number(char number); //判断一个char类型的元素是否为数字void delete_all();//删除动态数组int main(){ini();while (1){get_input();if (is_exit())break;split();delete_all();}delete_all();return 0;}int get_input(){int limit = INI,cnt = 0;char ch;input = (char *)malloc(sizeof(char)*INI);while ((ch = getchar())!='\n'){if (cnt + 1 >= limit){//如果数组大小不够,那么重新申请更大的空间char* tmp = input;limit += INC;input = (char *)malloc(sizeof(char)*limit);for (int i = 0; i < cnt; ++i)input[i] = tmp[i];}input[cnt++] = ch;}input[cnt] = '\0';return 0;}int split(){int number = 0;int index = 0;int tag = 0,cnt = 1,is_six = 0;while (input[index]!='\0'){if (is_number(input[index])&&is_six!=6){//如果是数字,同时数字位数没有达到6tag = 1;//标志经过了数字元素number = number * 10 + input[index] - '0'; //计算值的大小is_six++;}else{//如果是非数字那么打印之前的数字if (tag == 1){printf("#%d:\t\t%d\n", cnt++, number);tag = number = 0;if (is_six == 6){//将数字位数的标记置为0is_six = 0;continue;}is_six = 0;}}index++;}if (tag == 1){//打印以数字结尾的最后一个数字printf("#%d:\t\t%d\n", cnt++, number);tag = number = 0;}return 0;}bool is_number(char number){if (number <= '9' && number >= '0')return true;return false;}bool is_exit(){if (strcmp(input, "exit") == 0)return true;return false;}void ini(){printf("请输入字符串:(exit退出)\n");}void delete_all(){free(input);input = NULL;}

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值