标题:求助:一个字符串问题?
只看楼主
席卷天下
Rank: 1
等 级:新手上路
帖 子:29
专家分:6
注 册:2010-10-24
结帖率:81.82%
已结贴  问题点数:20 回复次数:4 
求助:一个字符串问题?
输入一个字符串,内有数字和非数字字符,如:a123x456=4567?45at587将其中连续的数字作为一个整数,依次存放到一数组a中。例如:123存放在a[0],456存放在a[1],...统计共有多少个整数,并输出这些数。
#include<stdio.h>
long fun(int a,int n)
{
  int i;
  for(i=1;i<=n;i++)
    a*=10;
  return a;
}
void main()
{
  int i,j,k,count=-1;
  long s,a[30],b[30];
  char ch[30];
  for(i=0;i<30;i++)
  {a[i]=0;b[i]=0;}
  printf("input a string:");
  scanf("%s",ch);
  i=j=k=0;
  while(ch[i++])
     j++;
  for(i=j;i>=0;i--){
    if(ch[i]>='0'&&ch[i]<='9'){
      count=0;
      s=0;
      s+=ch[i];
      i--;
    }
    while(ch[i--]){
        if(ch[i]>='0'&&ch[i]<='9'){
          count++;
          s+=fun(ch[i],count);
        }
        else {
          count=-1;
          b[k++]=s;
          i++;
          break;
        }
    }
  }
  k=i=0;
  while(1){
      if(b[k]>9){
        a[i]=b[k];
        printf("%4d",a[i]);
      }
      if(b[k]==0)
        break;
      i++;
      k++;
  }
}
结果运行不正确,求教诸位!谁有更好的算法,我这算法太垃圾了!
搜索更多相关主题的帖子: include return 字符串 count input 
2011-10-12 21:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:10 
回复 楼主 席卷天下
fun函数就不对

总有那身价贱的人给作业贴回复完整的代码
2011-10-12 21:38
席卷天下
Rank: 1
等 级:新手上路
帖 子:29
专家分:6
注 册:2010-10-24
得分:0 
有什么不对,fun函数能将字符型实参强制转换成long型
2011-10-12 21:51
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
得分:10 
#include <stdio.h>
int main()
{
    int i,j,flag=0;
    char ch[30];
    int a[30]={0};
    printf("input a string:");
    scanf("%s",ch);
    i=0;j=-1;
    while(ch[i]!='\0') {
      if((ch[i]>='0')&&(ch[i]<='9')) {
         if(flag==0) {
          ++j;flag=1;
        }
        a[j]=a[j]*10+ch[i]-'0';
      }
      else flag=0;
        i++;
    }
    printf("整数的个数为:%d\n",++j);
    for(i=0;i<j;i++)
     printf("%d\t",a[i]);
}
2011-10-12 22:17
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
回复 3楼 席卷天下
还没想出来?
函数long fun(int a,int n),a是int型,

s+=fun(ch[i],count);  ch[i]是char型,而且是字符型的'1','2'...  而不是整数型的1,2...


总有那身价贱的人给作业贴回复完整的代码
2011-10-12 22:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352243-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.933634 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved