C语言程序设计练习题 输入一个字符串,内有数字和非数字字符,例如 A123x456 17960?操作:将连续的数字作为一个整数,一次存放到一数组a中,统计共有多少个整数,并输出这些数。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	char str[999];
	printf("PLEASE ENTER A STRING\n");
	gets(str);//调用第二个头文件 
	int t=0,i=0,j=0,k=0;
	int a[999];
	char *p=str;
	for(;*p!='\0';p++)
	{
		
		if(*p>='0'&&*p<='9')
		{
			t=t*10+(*p-'0');//将多个数串成字符串 
			k=1;//标识符,是1就写入数组 
		}
		else//碰到下个不是数字,就把之前的数字存入数组 
		{
		  if(k==1)
		  {
			a[j++]=t;
			t=0;} 
		    k=0;
	    }
	 }
	 if(k==1) 
		{a[j++]=t;} 
		a[j]='\0';	
	int *q=a;
	printf("THERE ARE %d NUMBERS \n",j);
	for(;*(q+i)!='\0';i++)
	{
		printf("%d ",*(q+i));
	 } 
	return 0;
}

在这里插入图片描述
编写过程参考过zyckhuntoria以及其他用户的回答,进行了简化和修改
附上前者链接https://blog.csdn.net/zyckhuntoria/article/details/79594482

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值