问题 填空题

以下程序的功能是;从键盘输入一行字符串,将输入字符串中连续的数字作为一个整数,整数前的"+"和"_"分别表示正整数和负整数。依次取出相关的连续数字字符,并转换为整数后存放到整型数组中。函数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

问答题
单项选择题