2 回答
TA贡献1818条经验 获得超7个赞
你把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");
}
TA贡献1833条经验 获得超4个赞
atoi C语言库函数名: atoi
功 能: 把字符串转换成整型数
函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。
原型: int atoi(const char *nptr);
你传的 参数是 int 型的
还有
member[i].str+1;
字符串 加 整型 怎么加 ?????
- 2 回答
- 0 关注
- 137 浏览
添加回答
举报