| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 42415 人关注过本帖
标题:如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
只看楼主 加入收藏
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
先整6楼10楼的,再整9楼的,呵呵

梦想拥有一台龙芯3A-4000
2014-09-17 16:08
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
回复 6 楼 wp231957
说的很清楚!不过是在很讨厌那些用标记的人比如标记x==0或1,我也没看懂x是标记什么
2014-09-20 01:22
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
以下是引用TonyDeng在2014-9-17 12:53:38的发言:

这个题目没有思路,表明不会把以前做过的简单题目综合起来运用解决相对复杂问题。

如下子问题你一定做过的:
1.循环扫描字符串
2.判断字符的类型(是否数字或字母等)
3.把一串"123"字符转换为数值
4.累加

把上面那些综合起来,就能解决你的问题。这用不着什么最新语法,是非常非常非常原始的基础训练。


为什么斑竹的头像看起来。。。像一个蒙古草原上的大汉呢。
2014-09-20 02:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 13 楼 随风而行 lulu
啊,什么眼神儿?!

授人以渔,不授人以鱼。
2014-09-21 00:13
david3
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-2-1
收藏
得分:0 
刚好也在研究这个问题。。。。貌似有点眉目了。。。
2015-02-01 22:10
清风9527
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2015-1-20
收藏
得分:0 
回复 10楼 TonyDeng
恩,32个赞
2015-02-02 00:31
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int add(char *str) {
    int sum = 0;

    do {
        if(*str >= '0' && *str <= '9')
            sum += atoi(str);

        while(*str >= '0' && *str <= '9')
            str++;
    } while(*++str);

    return sum;
}

int main(void) {
    char str[81];
    fgets(str, 80, stdin);
    printf("%d\n", add(str));
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-02-02 09:38
C语言小大圣
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2014-8-21
收藏
得分:0 
最快最简单的方法是:
1,原字符串为char s[],本例中不要用char*s,将字符串中非数字字符赋值为‘\0’,原字符串变成xxx'\0'xx'\0'···的样式
2,进行判断,声明一个指针数组*p[N];进行判断,
  
程序代码:
int i,n=1;
for(i=0;i<strlen(s);i++)
  {
     if(s[i-1]='\0'&&isdigit(s[i]))
        p[n]=s+i;
        n++;
  }

3,将p[N]里面的字符串用函数atoi转换为数字,放在数组中;

全部代码如下:仅供参考
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define N 10
int main()
{
    char s[]="hello123,her43,so32_17,%#34";
    char *p[N];
    int P[N];
    int num=strlen(s),i,n=0,sum=0;

    for(i=0;i<num;i++)
    {
        if(!isdigit(s[i]))
            s[i]='\0';
    }

    for(i=0;i<num;i++)
    {
        if(s[i-1]=='\0'&&isdigit(s[i]))
        {
            p[n]=s+i;
            n++;
        }
    }

    for(i=0;i<n;i++)
    {
        P[i]=atoi(p[i]);
    }

    for(i=0;i<n;i++)
    {
        printf("%d\n",P[i]);
        sum+=P[i];
    }

    printf("The sum is:%d\n",sum);

    system("pause");
    return 0;
}



[ 本帖最后由 C语言小大圣 于 2015-2-4 11:30 编辑 ]
2015-02-04 11:29
丽之鸾龙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-9-8
收藏
得分:0 
回复 10楼 TonyDeng
谢谢大佬,我也这个不会,看了你的评论恍然大悟,谢谢
2017-09-08 22:49
丽之鸾龙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-9-8
收藏
得分:0 
回复 10楼 TonyDeng
谢谢大佬,我也这个不会,看了你的评论恍然大悟,谢谢
2017-09-08 22:49
快速回复:如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
数据加载中...
 
   



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

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