|
2鱼币
- #include<stdio.h>
- #define N 100
- int main()
- {
- char b[N],*p;
- int a[N],i,j,e10,count,m,sum;
- printf("input string:");
- gets(b);
- i=0;
- m=0;
- p=&b[0];
- 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[count]=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[count]=sum;
- count++;
- }
- for(i=0;i<count;i++)
- {
- printf("%d ",a[i]);
- }
- printf("\n");
- return 0;
- }
复制代码
输出结果是乱码,请各位大神帮忙看看是哪有问题!!!
应该也可以直接在输入的时候就直接挑选出来,有兴趣可以写写看
我没写注释,有问题可以回复
- /*
- * 在 str[N] 里接受输入,然后把里边的数字提出来存到 result[N] 数组里
- * 例如:A123x456 17960
- * 123 存到 result[0],456 存到 result[1]...
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define N 100
- int main(void)
- {
- char str[N], ch;
- int i, j, idx, result[N];
- char temp[N];
-
- temp[0] = '\0';
- printf("请输入字符串:\n");
- ch = getchar();
- i = 0;
- while ('\n' != ch && i < N)
- {
- str[i++] = ch;
- ch = getchar();
- }
- i = j = idx = 0;
- while (i < N)
- {
- if ( str[i] > '9' || str[i] < '0')
- {
- i++;
- }
- else
- {
- while ( str[i] <= '9' && str[i] >= '0')
- {
- temp[j++] = str[i++];
- temp[j] = '\0';
- }
- result[idx++] = atoi(temp);
- temp[0] = '\0';
- j = 0;
- }
- }
- if (idx <= N - 1)
- {
- result[idx] = '\0';
- }
- idx = 0;
- while ('\0' != result[idx])
- {
- printf("%d ", result[idx++]);
- }
- return 0;
- }
复制代码
|
-
-
最佳答案
查看完整内容
应该也可以直接在输入的时候就直接挑选出来,有兴趣可以写写看
我没写注释,有问题可以回复
|