请高手帮忙看看,我的程序问题出在哪里了,谢谢!!!

#include<stdlib.h>
#include<stdio.h>
/*是这样的,我用atoi函数总是得不到数据,很郁闷。。。*/
/*输入:任意字符(*除外),再空格,紧接着继续输入一系列
数字,数字之间为一个空格,回车结束本次输入,
若输入*则停止输入。*/
/*输出:想要处理的字符串,用atoi函数处理后得到的数据。*/
typedef struct test
{ char str[80];
int data[80];
}TEST;
main()
{
int i=0,j=0,k=0,m,*q;
char ch;
TEST member[80];
/*这个while用来判断是否输入结束*/
while((ch=getchar())!='*')
{
gets(member[i].str);
i++;j++;
}
/*这个for用来通过atoi得到数据,问题出在这里。。。*/
for(i=0;i<=j;i++)
{ k=0;
q=member[i].str+1;
member[i].data[k]=atoi(q);
here:while(*q!=' '&&*q!='\0')
q++;
q++;
k++;
if(*(q-1)!='\0')
{
member[j].data[k]=atoi(q);
goto here;
}
}
/*这是输出部分*/
for(k=0;k<j;k++)
{
printf("***********************************************************\n");
printf("No.%d string is :",k+1);
puts(member[k].str);
printf("The began three numbers in No.%d string are :",k+1);
for(m=0;m<3;m++)
printf("%3d",member[k].data[m]);
printf("\n");
printf("***********************************************************\n");
printf("\n");
}
printf("Press any key to get back...\n");
getch();
}

慕后森
浏览 146回答 2
2回答

qq_笑_17

你把main中的int *q改成char *q#include<stdlib.h>#include<stdio.h>/*是这样的,我用atoi函数总是得不到数据,很郁闷。。。*//*输入:任意字符(*除外),再空格,紧接着继续输入一系列数字,数字之间为一个空格,回车结束本次输入,若输入*则停止输入。*//*输出:想要处理的字符串,用atoi函数处理后得到的数据。*/typedef struct test{ char str[80];int data[80];}TEST;int main(){int i=0,j=0,k=0,m;char *q;char ch;TEST member[80];/*这个while用来判断是否输入结束*/while((ch=getchar())!='*'){gets(member[i].str);i++;j++;}/*这个for用来通过atoi得到数据,问题出在这里。。。*/for(i=0;i<=j;i++){ k=0;q=member[i].str+1;member[i].data[k]=atoi(q);here:while(*q!=' '&&*q!='\0')q++;q++;k++;if(*(q-1)!='\0'){member[i].data[k]=atoi(q);goto here;}}/*这是输出部分*/for(k=0;k<j;k++){printf("***********************************************************\n");printf("No.%d string is :",k+1);puts(member[k].str);printf("The began three numbers in No.%d string are :",k+1);for(m=0;m<3;m++)printf("%3d ",member[k].data[m]);printf("\n");printf("***********************************************************\n");printf("\n");}printf("Press any key to get back...\n");}

潇潇雨雨

atoi C语言库函数名: atoi功 能: 把字符串转换成整型数函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。原型: int atoi(const char *nptr);你传的 参数是 int 型的还有member[i].str+1;字符串 加 整型 怎么加 ?????
打开App,查看更多内容
随时随地看视频慕课网APP