C语言:这道题这样作为啥总有错误么 不解~跪求解答~

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:14:45
输入一个字符串,内有数字和非数字字符,如
a123x456 17960?302tab876
将其中连续的数字作为一个整数,依次存放到一维数组a中。例如,123放在a[0],456放在
a[1],.......统计共有多少个整数,并输出这些整数。(要求用指针处理)

#include<string.h>
#include<stdio.h>
void main()
{char str[20],*p,i;
int a[20],str2[20],a,b;
p=str;
printf("请输入字符串:\n");
for(i=0;i<20;i++)
scanf("%d",&str[i]);

for(i=0;i<strlen(str);i++)
if(str[i]<='9'&&str[i]>='0')
{
a=0,b=0;
{b='*p'-48;
a+=b;
a*=10;
}

a[i]=a/10;
}
for(i=0;i<strlen(a);i++)
printf("数字分别为%d\n",a[i]);

}

#include<string.h>
#include<stdio.h>
void main()
{char str[20];
int b=0,i;
printf("请输入字符串:\n");
scanf("%s",str);//字符串的输入
for(i=0;i<strlen(str);i++)
if(str[i]<='9'&&str[i]>='0')
{
b=b*10+str[i]-48;
}
printf("数字分别为%d\n",b);
}
给你简化了 你好好看看书中字符串的内容 你理解的相当有问题

scanf("%d",&str[i]);
貌似你根本不知道自己在做啥。。。 多看看语法书把

我有程序,你自己研究研究吧。

#include<string.h>
#include<stdio.h>

#define array_size (50)
#define INT_SIZE (25)
int Integer[INT_SIZE] = {0};
int int_num = 0;

int string_input( char *ptr ) //字符串的输入
{
gets( ptr );
return 1;
}

void check_string( char *ptr )
{
int save_flag = 0; //用来标识什么时候开始存入该整数
int check_ptr = 0;
for( ;check_ptr < array_size;check_ptr++ )
{
//sa