输入一个不定长度的数字字符串,将其中的数字提取出来并保存在数组中。
#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;
}
输入字符串 1213 498 46464 56549
输出 a[0]=1213 a[1]=498 a[2]=464664 a[3]=56549
C代码语言实现
#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;
}