输入一个字符串,内有数字和非数字字符,例如:
A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。

方法一:

#include <stdio.h>
#include <math.h>void output(char *s, int n);            //声明输出函数int main()
{char str[30]={0};printf("Please enter string: ");    //输入字符串gets(str);output(str, 30);                    //调用输出函数return 0;
}//输出函数
void output(char *s, int n)
{char *i;int j, k, t, m, temp[10], num;double sum, a[30];for (i=s, num=0, j=0, m=0; i<s+n; i++){if (*i>='0'&&*i<='9') num=1, temp[j++]=(int)(*i-'0');else if (num){for (num=0, k=0, sum=0, t=j-1; k<j; sum+=temp[k]*pow(10, t), t--, k++);a[m++]=sum, j=0;}}for(j=0, printf("There is %d number in the string.\nResult: ", m); j<m; printf("%.0f ", a[j++]));printf("\n");
}

在VS2019下,需将源文件的gets做些修改:

#include <stdio.h>
#include <math.h>void output(char* s, int n);            //声明输出函数int main()
{char str[30] = { 0 };printf("Please enter string: ");    //输入字符串gets_s(str, 30);output(str, 30);                    //调用输出函数return 0;
}//输出函数
void output(char* s, int n)
{char* i;int j, k, t, m, temp[10], num;double sum, a[30];for (i = s, num = 0, j = 0, m = 0; i < s + n; i++){if (*i >= '0' && *i <= '9') num = 1, temp[j++] = (int)(*i - '0');else if (num){for (num = 0, k = 0, sum = 0, t = j - 1; k < j; sum += temp[k] * pow(10, t), t--, k++);a[m++] = sum, j = 0;}}for (j = 0, printf("There is %d number in the string.\nResult: ", m); j < m; printf("%.0f ", a[j++]));printf("\n");
}

方法二:(利用动态内存分配)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>void print(char *p_char);int main()
{char *string;string=(char *)malloc(80*sizeof(char));printf("Please enter string: ");gets(string);print(string);return 0;
}void print(char *p_char)
{int word, i, j, n=(int)strlen(p_char);char *p, *num[30];int q;for (i=0; i<20; num[i++]=(char*)malloc(30*sizeof(char)));for (p=p_char, word=0, i=0, j=0; p<p_char+n; p++){if (*p>='0'&&*p<='9'){word=1;num[i][j]=*p;q=num[i][j];j++;}else if (word==1){    q=num[i][j];num[i++][j]='\0';j=0;word=0;}}int k;if(q>='0'&&q<='9')  k=i+1;elsek=i;num[i][j]='\0';printf("There are %d numbers in the string.\n", k);for (j=0; j<i+1; puts(num[j++]));
}

在VS2019下,需将源文件的gets做些修改:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>void print(char* p_char);int main()
{char* string;string = (char*)malloc(80 * sizeof(char));printf("Please enter string: ");gets_s(string, strlen(string));print(string);return 0;
}void print(char* p_char)
{int word, i, j, n = (int)strlen(p_char);char* p, * num[30];int q;for (i = 0; i < 20; num[i++] = (char*)malloc(30 * sizeof(char)));for (p = p_char, word = 0, i = 0, j = 0; p < p_char + n; p++){if (*p >= '0' && *p <= '9'){word = 1;num[i][j] = *p;q = num[i][j];j++;}else if (word == 1){q = num[i][j];num[i++][j] = '\0';j = 0;word = 0;}}int k;if (q >= '0' && q <= '9')k = i + 1;elsek = i;num[i][j] = '\0';printf("There are %d numbers in the string.\n", k);for (j = 0; j < i + 1; puts(num[j++]));
}

输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……相关推荐

  1. 习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中。

    习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123存入在a[0],456 ...

  2. .输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到已数组a中,例如,123放在a[0],456放在a[1]…

    #include<stdio.h> int jishu(char *p) {     int a[10]={0};     int i=0,j=0,b=0;     for(i=0;*(p ...

  3. 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a1[1].

    输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a1[1]- ...

  4. 题8.16:输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续的数字作为一个整数, 依次存放到一数组a中。例如, 123 放在a[0

    题目 本题是谭浩强<C程序设计课后习题>题8.16. 题目: 16. 输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续 ...

  5. 输入一个字符串,内有数字和非数字,例如:A123x456 17960,将其中连续的数字作为一个整数,依次放到一数组a中。例如,123放在a[0],456放在a[1],统计共有多少个整数,并输出这些数。

    代码如下: #include <stdio.h> #include <string.h> #include <ctype.h> #include <mallo ...

  6. 【C】8.16输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 ,将其中连续的数字作为一个整数,依次存放到一数组a中。例如:123放在a[0],456放在

    //输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 //将其中连续的数字作为一个整数,依次存放到一数组a中. //例如:123放在a[0],456放在a ...

  7. 输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中……

    /*输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中 ...

  8. 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,一次存放到一个数组中。

    输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,一次存放到一个数组中. #include <stdio.h> ...

  9. 输入一个字符串,内有数字和非数字字符,例如A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依此存放到一个数组a中。

    输入一个字符串,内有数字和非数字字符,例如A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依此存放到一个数组a中.例如,123放在a[0],456放在a[1]... ...

最新文章

  1. 图像和视频的快速去雾算法研究
  2. AIX 添加开机启动项
  3. A Convolutional Neural Network for Modelling Sentences阅读笔记
  4. 链表的基本操作 java_详细实现单链表的基本操作【Java版】
  5. Halcon和Opencv的区别?
  6. 使用内存回流的方法来实现将image的内容转换为 byte[]
  7. 阿里P7大牛整理!BAT大厂面试基础题集合,成功入职字节跳动
  8. 小猴子蓝裤黄袄 即时通讯
  9. 二维数组最大连通子数组之和
  10. Android学习笔记(六)——CheckBox复选框
  11. AcWing 1978. 奶牛过马路(前缀和)
  12. 北京交通大学离散数学 谓词逻辑_离散数学_北京交通大学_中国大学MOOC(慕课)
  13. Flask框架学习笔记9-jinjia2模板语言
  14. WebSocket简介
  15. Ext Gwt 实用例子--类似meebo的聊天界面
  16. Ubuntu安装Nixnote,解决印象笔记(国服/中国区)登录不能显示输入密码的问题
  17. 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks
  18. Android属于绑定服务特点是,Android P HIDL服务绑定模式与直通模式的分析 (原创)
  19. 郎鹤焱张鹤伦计算机学院,德云社都是“低学历”?郎鹤焱、阎鹤祥都毕业于北京工业大学...
  20. Docker学习笔记 (4)

热门文章

  1. 基于Python实现有效前沿(Efficient Frontier)
  2. python turtle画龙卷风,打电话给xtail龙卷风.过程.子过程
  3. java pdf 插入图片_java实现在pdf模板的指定位置插入图片
  4. vhdl写模十计数器(可任意选择)
  5. texlive 2021 安装之后双击之后闪退解决
  6. 级联查询ajax,Jquery+Ajax下拉框级联查询
  7. week 2(python)
  8. 微信小程序-bug-调用wx.login()无响应的原因和解决方案
  9. Excel中Lookup函数使用大全
  10. vue 登录页vue模板_Vue材质设计管理员模板