如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中

如输入一个字符串:sd348ghi 35qeaio843ud843
则将348放在a[0],35放在a[1],843放在a[2],843放在a[3],统计有多少个整数,并输出这些整数。

void main()
{
char a[80],*p=a;
int b[80]={0},i=0,j=0,x=0; //!!!!
printf("请输入一串字符\n");
gets(a);
for(p=a;(*p)!='\0';p++)
{
if(((*p)>='0')&&((*p)<='9')) //!!!!
{
if(x==0)
{
b[i]=(*p)-48;
i++;
}
else
b[i-1]=b[i-1]*10+(*p)-48;
x=1;
}
else
x=0;
}
for(j=0;b[j]!=0;j++) //!!!!
printf("%d ",b[j]);
printf("共有%d个",j);
printf("\n");

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-16
#include <stdio.h>
#include <conio.h>

int main(int argc, char* argv[])
{
const char str[256] = "sd348ghi 35qeaio843ud843";
char sNumbers[32][32];

int i = 0, j = 0, k = 0;
int len = strlen(str);
int bNumber = 0;

while (i < len)
{
bNumber = 0;
while ((str[i] < '9') && (str[i] > '0'))
{
bNumber = 1;
sNumbers[j][k++] = str[i++];
}
if (bNumber)
{
sNumbers[j][k++] = '\0';
j++;
bNumber = 0;
}
i++;
k = 0;
}
printf("Count: %d\n", j);
for (i = 0; i<j; i++)
printf("%s\n", sNumbers[i]);

getch();
return 0;
}
第2个回答  2008-05-16
#include <stdio.h>
#include <stdlib.h>

void main()
{
char str[1024];
char *p;
int a[64];
int n = 0;
int i;

printf("please input: ");
gets(str);
for(p = str; *p != '\0'; p++)
{
if (*p >= '0' && *p <= '9')
{
a[n++] = atoi(p);
for(++p; *p >= '0' && *p <= '9'; p++);
}
}
printf("total %d integer(s).\n", n);
for(i = 0; i < n; i++)
{
printf("%d\n", a[i]);
}
}
第3个回答  2020-07-16
定义一个足够的数组,循环字符数组,遇到数字就放到新的数组中
~~~~~~~~~~

如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
printf("%d ",b[j]);printf("共有%d个",j);printf("\\n");}

C语言。输入一个字符串,内有数组和非数字字符,将其中连续的数字作为一个...
void output(char *s, int n); \/\/定义输出函数 int main(){ char str[30];printf("Please enter string: "); \/\/输入字符串 gets(str);output(str, 30); \/\/调用输出函数 return 0;} \/\/输出函数 void output(char *s, int n){ char *i;int j, k, t, m, temp[10],...

c语言 如何从键盘中输入若干个数保存到数组中
1、首先在电脑中打开编译器(vc++6.0),新建一个将1到100保存到数组中项目,如图所示。2、添加一个 assignment.c 文件,如图所示。3、包含stdio.h和stdlib.h头文件,如图所示。4、输入main函数主体及返回值,如图所示。5、定义一个char数组,长度为100,最后使用while循环进行赋值,如图所示,就完成...

如何输入键盘数组c语言
c语言如何从键盘中输入若干个数保存到数组中程序代码:#includestdio.h#defineN10intmain(){inta[N]={0};inti=0;for(i=0;iN;i++){scanf("%d",a[i]);}for(i=0;iN;i++){printf("%d",a[i]);}return0;}扩展资料:C语言中数组的输入和存放可通过scanf()函数来实现。首先要定义一个...

...一字符串中连续的数字作为一个整数,依次存放到一整型数组a中,并统 ...
include <stdio.h> bool skip(){ scanf("%*[^0-9]");return true;} int main(){int x,n=0,a[100];while(skip() && scanf("%d", &a[n])!=EOF)printf("%d\\n", a[n++]);printf("共输入了%d个数\\n",n);}

C语言中如何将一个数字的各个位上的数分别提取?
1、方法一:我的做法是先将整型转为字符串,再将转后的字符串取需要的字符转为整型,过程说起来复杂,但是写起来只要两行代码就行了~include <stdlib.h> include <stdio.h> int main(void){ int number = 12345;char string[25];itoa(number, string, 10);printf(...

...连续的数字作为一个整数,依次存放到一个数组中,统计共有
double sum=0;int a[10];\/\/定义一个数组存储每次检验得到的字符串中的整形数字 k=strlen(p1);\/\/计算出输入的字符串的长度 for (i=0,j=0;i<k;i++){ if(*(p1+i)>='0' && *(p1+i)<='9'){ a[j]=*(p1+i);j++;\/\/变量j用于记忆连续检测到的整数个数 } \/* \/\/1. 修改 ...

输入一个字符串,内有数字和非数字字符,将其中的数字作为一个整数,依次...
include<stdio.h>int main( ){char s[50];int a[50];int count=0,i;printf("请输入字符串:");scanf("%s",s);for(i=0;s[i]!='\\0';i++){if((s[i]>='0') && (s[i]<='9')){a[count++] = s[i]-'0';}}if(count ==0){printf("没有数字!\\n");}else{printf...

本人刚学C语言,怎么实现可以多次输入,现在一个每次输出结果后按回车都...
把输入放到循环中。只要循环成立,将一直重复输入过程。例:循环读入10个整数到数组int a[10]中:int a[10];for(int i=0;i<10;i++) scanf("%d",&a[i]); \/\/循环读入10个数并依次存放到数组a中

c语言定义变量n,分别输入n个数字并存放在一个数组变量中,求n个数字...
以下是一个 C 语言程序,定义变量 n,输入 n 个数字,存放在数组变量中,求 n 个数字中的最大值:```c include <stdio.h> int main() { int n, i;int arr[100], max; \/\/定义整型数组和最大值变量 printf("请输入元素个数(不超过100):");scanf("%d", &n);printf("请输入%d个...

相似回答