输入一个不定长度的数字字符串,将其中的数字提取出来并保存在数组中。

来源:互联网 发布:淘宝做工瑕疵问题 编辑:程序博客网 时间:2024/04/28 04:26
输入一个不定长度的数字字符串,将其中的数字提取出来并保存在数组中。

输入字符串  1213  498   46464    56549  

输出  a[0]=1213    a[1]=498    a[2]=464664   a[3]=56549

C代码语言实现


#include<stdio.h>
#include<string.h>
int stringtoint(char s[]);//子函数的声明
void set(char instr[]);
void main()
{
char str1[80];
gets(str1);
set(str1);
}
void set(char instr[])
{
struct string //使用结构体数组存储每个单词,也可以使用二维数组存储每个单词
{
char a[20];
};


struct string A[21]; //定义结构体数组存放字串
int i=0,j=0,num=0,word=0;
int arra[20];
//char instr[80];  
char c;
for(i=0;i<21;i++) //对定义的结构体数组字串进行初始化为'\0';
for(j=0;j<10;j++)
{//A[i].a[j]='2';
A[i].a[j]='\0';
       }
/*for(i=0;i<21;i++)
printf("%s\n",A[i].a);*/
//gets(instr);


for(i=0;(c=instr[i])!= '\0';i++) 
{
 if(c==' ')  
 word=0;
 else if(word==0)
 {
  word = 1; //word=1,表示为单词
  num++;    
  j=0;
 }
 if(word==1)
 {
  A[num].a[j]=c; 
  j++;
 }
    }
printf("%d\n",num);  //输出字符串中单词的个数


/*for(i=1;i<=num;i++)  //输出每个单词
printf("%s\n",A[i].a);*/


for(i=1;i<=num;i++)
arra[i-1]=stringtoint(A[i].a);
// printf("%s\n",A[i].a);

for(j=0;j<num;j++)//输出数组
printf("%d\n",arra[j]);
}
int stringtoint(char s[]) //将一个数字字符串转换为整型数字
{
int i,sum;
sum=0;
//gets(s);
for(i=0;i<strlen(s);i++)
{
sum=sum*10+s[i]-'0';
}
return sum;
}
0 0
原创粉丝点击