以下程序的功能是;从键盘输入一行字符串,将输入字符串中连续的数字作为一个整数,整数前的"+"和"_"分别表示正整数和负整数。依次取出相关的连续数字字符,并转换为整数后存放到整型数组中。函数change_int()实现从字符串中依次取出整数并放入数组中
例如;输入字符串:"sf-123 abc+456 df7890j",则输出-123 456 7890
[程序](4分)
#include
void change_int(())
{
int flag;
count=0;
while(*p){
flag=1; //flag=1为正整数,flag=-1为负整数
while((*p<’0’||*p>’9’)&& ())p++;
if(*p==’-’){
flag=-1;
p++;
}
else if(*p==’+’) p++;
if(*p>=’0’ && *p<=’9’){
int num=0;
while(()){
num=num*10+*p-’0’;
p++;
}
num= () ;
b[count]=num;
count++;
}
}
}
void main(void)
{
char str[400];
int a[20],n;
cout<<"请输入一个含有数字的字符串;\n";
cin.getline(str,400);
change_int(str,a,n); ,
cout<<"输入字符串中共有"<个整数,它们分别是;\n";
for(int i=0;i
cout<
if((i+1)%4==0) cout<<’\n’;
}
cout<
}
参考答案:char *p,int b[],int &count;*p!=’+’ && *p!=’-’或*p!=’-’;*p>=’0’&&*p<=’I’;num *flag