当前位置: 代码迷 >> C语言 >> 指针应用疑点
  详细解决方案

指针应用疑点

热度:154   发布时间:2007-12-05 13:31:00.0
指针应用疑点
题:输入一个字符串,内有数字和非数字字符,例如:a123x456   17960?   302tab5876         
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]......
统计共有多少个整数,并输出这些数。
程序:
[bold]#include<stdio.h>
int main()
{
    char str[80];
    int *p;
    int i=0,j=0,digit=0,ndigit=0,a[20];
    printf("please enter a character string:\n");
    gets(str);
    p=&str[0];
    for(i=0;i<80&&*(p+i)!='\0';i++)
    {
        if(*(p+i)>='0'&&*(p+i)<='9')
        {
            digit=digit*10+(*(p+i)-'0');
            if(*(p+i+1)<'0'||*(p+i+1)>'9'||*(p+i+1)=='\0')
            {
                a[j]=digit;
                digit=0;
                ndigit++;
                j++;
             }
        }
   }
   for(j=0;j<ndigit;j++)
       printf(" %d",a[j]);
   printf("\n");
   return 0;
}[/bold]
问题:能通过编译,但得不到结果,请问出了什么问题,哪些条件缺少?
搜索更多相关的解决方案: 疑点  指针  应用  

----------------解决方案--------------------------------------------------------
int *p; 改为 char *p;
----------------解决方案--------------------------------------------------------
编译能通过吗
你定义的变量p是int *,p=&str[0]这两边的类型不匹配吧
----------------解决方案--------------------------------------------------------
把[bold] int[/bold] 改为[bold] char[/bold] 以后行了,谢谢。以后一定注意。
----------------解决方案--------------------------------------------------------
  相关解决方案