C语言输入一串小写字母 以,在c语言中,如何从键盘输入一串包含数字和字母的字符串,以连续的数字构成一个整数,超过六个则另外组成...

#include

#include

#include

#define INI20

#define INC 10

char* 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 

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){//如果是数字,同时数字位数没有达到6

tag = 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){//将数字位数的标记置为0

is_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、付费专栏及课程。

余额充值