求助求助
#include<stdio.h>#define N 100
int main()
{
char b,*p;
int a,i,j,e10,count,m,sum;
printf("input string:");
gets(b);
i=0;
m=0;
p=&b;
count=0;
while(*p!='\0')
{
if((*p>='0') && (*p<='9'))
{
m++;
}
else
{
if(m>0)
{
sum=*(p+i-1)-'0';
e10=1;
for(j=1;j<m;j++)
{
e10=e10*10;
sum=sum+(*(p+i-1-j)-'0')*e10;
}
a=sum;
count++;
m=0;
}
}
i++;
p+=i;
}
if(m>0)
{
sum=*(p+i-1)-'0';
e10=1;
for(j=1;j<m;j++)
{
e10=e10*10;
sum=sum+(*(p+i-1-j)-'0')*e10;
}
a=sum;
count++;
}
for(i=0;i<count;i++)
{
printf("%d ",a);
}
printf("\n");
return 0;
}
输出结果是乱码,请各位大神帮忙看看是哪有问题!!!
应该也可以直接在输入的时候就直接挑选出来,有兴趣可以写写看
我没写注释,有问题可以回复
/*
* 在 str 里接受输入,然后把里边的数字提出来存到 result 数组里
* 例如:A123x456 17960
* 123 存到 result,456 存到 result...
*/
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main(void)
{
char str, ch;
int i, j, idx, result;
char temp;
temp = '\0';
printf("请输入字符串:\n");
ch = getchar();
i = 0;
while ('\n' != ch && i < N)
{
str = ch;
ch = getchar();
}
i = j = idx = 0;
while (i < N)
{
if ( str > '9' || str < '0')
{
i++;
}
else
{
while ( str <= '9' && str >= '0')
{
temp = str;
temp = '\0';
}
result = atoi(temp);
temp = '\0';
j = 0;
}
}
if (idx <= N - 1)
{
result = '\0';
}
idx = 0;
while ('\0' != result)
{
printf("%d ", result);
}
return 0;
}
输入的东西超了数组最大下标了
char b,*p;
int a,i,j,e10,count,m,sum;
printf("input string:");
gets_s(b);
i=0;
m=0;
p=&b;
count=0;
while(*p!='\0')
{
if((*p>='0') && (*p<='9'))
{
m++;
}
else
{
if(m>0)
{
sum=*(p-1)-'0';///////////////////////////////////
e10=1;
for(j=1;j<m;j++)
{
e10=e10*10;
sum=sum+(*(p-1-j)-'0')*e10;
}
a=sum;
count++;
m=0;
}
}
p++;////////////////////////////////////////////
}
if(m>0)
{
sum=*(p-1)-'0';
e10=1;
for(j=1;j<m;j++)
{
e10=e10*10;
sum=sum+(*(p-1-j)-'0')*e10;
}
a=sum;
count++;
}
for(i=0;i<count;i++)
{
printf("%d ",a);
}
printf("\n"); Max472 发表于 2021-8-19 18:34
应该也可以直接在输入的时候就直接挑选出来,有兴趣可以写写看
我没写注释,有问题可以回复
好的 谢谢
页:
[1]