代码如下:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <malloc.h>
#include <assert.h>
int Get_str_Num_Count(const char *str) //子函数为统计一长串字符串中整数的个数
{int count = 0; //首先初始化数字个数为0while(*str != '\0') //停步准则:从字符串的首地址开始遍历,当遇到'\0'时就停止{if(isdigit(*str) && !isdigit(*(str+1)))
//我们要输出整数的个数,那么就要判断什么样子的字符才是整数,那就是同时满足两个条件:1.当前位置的字符所表示的是数字,2.他所在位置的下一个位置不是数字,那么我们就可以认为这是一个数字{count++; //从而计数器++}str++; //while循环的步进 这一条一定不能忘记,while循环容易忘记的地方就是没有步进}return count; //最后把记录的数字个数返回
}int *Get_str_Num(const char *str)  //子函数为统计一长串字符串中整数的内容
{bool tag = false;  //立一个标签为假int n = Get_str_Num_Count(str); //此处就是用到的上一个记录数字的子函数int *arr = (int *)malloc(n*sizeof(int));  //申请动态内存arr来存储每一个整数int sum = 0;  //首先初始化整数为0int k = 0; //k表示数组arr的下标while(*str != '\0') //停步准则:从字符串的首地址开始遍历,当遇到'\0'时就停止{if(isdigit(*str)) //首先先判断字符串某一位是否为数字,若是数字执行下面的操作{tag = true; //先改变标签为真sum = sum*10 + (*str-'0');
//记录数字 这一步刚好满足若是连续的数字就可以输出这一串数字 此处为什么要字符串-'0',是因为此时的数字是字符数字,减去'0'之后就变为数字了}else{if(tag) //如果标签为真{arr[k] = sum; //就把sum的值给arr[k]k++; //k继续往后步进sum = 0; //重置sum为0tag = false; //重置标签为假}}str++; //while循环的步进}if(tag) //为什么这里又出现一步判断标签为真的操作 这是因为while循环的最后遇到了'\0',而刚好最后有时就是一串数字,那么这就导致最后的一串数字无法输出,这就出现bag了,所以最后一定要判断标签是否为真,若是的话就把醉的这串数字输出来{arr[k] = sum;  //就把sum的值给arr[k]}return arr; //最后返回数组arr
}
int main()
{const char *str = "000A123x456 17960? 302ta0b5876"; //给定字符串int *p = Get_str_Num(str);  //把从字符串中得到的整数给pint len = Get_str_Num_Count(str);  //获取数字的个数给lenfor(int i=0; i<len; i++){printf("%d\n", p[i]); //输出每一个整数}return 0;
}

调试结果为:

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

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

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

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

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

  3. 字符串:“A123x456 17960? 302tab5876“, 将其中连续的数字作为整数依次放到数组arr,统计有多少整数,并输出

    //16.A123x456 17960? 302tab5876 将连续的数字作为整数依次放到数组arr,统计有多少整数,并输出 void demo16(){char *str = "A123 ...

  4. 求一段字符串内最长的非空子字符串的长度(实例)

    欢迎提问,一起解决 题目:求一段字符串内最长的非空子字符串的长度 解答方案 提升思考 怎么将字符 一起输出 优化思考 题目:求一段字符串内最长的非空子字符串的长度 示例: 输入:s = "b ...

  5. 输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,若原始大写字母为V~Z, 则转换为对应小写字母的值减21。其他字符不变,输出转换.

    输入一个字符串,将其中大写字母转换为对应小写字母之后的第五个字母,若原始大写字母为V-Z,  则转换为对应小写字母的值减21.其他字符不变,输出转换. #include<stdio.h> ...

  6. 获取键盘录入的5个int数,并存放到int数组arr中,输入前提示输入的是第几个值 * * 2.2 传递数组arr调用getNum(int[] arr)方法,获取返回值,并打印输出

    package Day05;import java.util.Scanner;/*** 2.定义main方法:* * 2.1 获取键盘录入的5个int数,并存放到int数组arr中,输入前提示输入的是 ...

  7. 输入一个字符串,判断到底有几个大写字母,小写字母,以及数字

    1.这里我们用到了charAt()属性,先返回所有的字符串,逐个进行统计 import java.util.Scanner; public class login {public static voi ...

  8. python输入一行字符串、剔除其中所有小写字母后输出_1. 输入一行字符串,将其中的非字母字符剔除,然后将字母全部转换为大写字母,并...

    DimstrAsString,str2AsString,nAsInteger'定义str,str2为字符串变量,n为整型变量str=InputBox("","输入一行字符 ...

  9. C语言程序设计练习题 输入一个字符串,内有数字和非数字字符,例如 A123x456 17960?操作:将连续的数字作为一个整数,一次存放到一数组a中,统计共有多少个整数,并输出这些数。

    #include<stdio.h> #include<stdlib.h> int main() {char str[999];printf("PLEASE ENTER ...

最新文章

  1. 入门架构——单机高性能
  2. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
  3. Android将联系人读取到LISTVIEW中遇到的问题!
  4. Django开发—如何重置migration
  5. 科技、体育、创业,三者碰撞是真的野!
  6. ERP员工入登记查询(六)
  7. python建立py文件夹过程_Pycharm创建python文件自动添加日期作者等信息(步骤详解)...
  8. 微人事项目实战的数据库脚本_EMP微前端实战之cocos2d线上项目
  9. matlab 判断两个矩阵有元素相等_Matlab入门教程 第 1 章 Matlab基础知识之基本运算...
  10. UVA10505 Montesco vs Capuleto【DFS】
  11. Android P通知
  12. data/mysql_error_trace.inc,09-在线挑战详细攻略-《真的很简单》
  13. oracle字段id加1,oracle 字段ID自动增1
  14. 博客园园龄,还有比我老的吗?
  15. LINUX下载编译YASM
  16. 基于Paddle Serving百度智能边缘BIE的边缘AI解决方案
  17. 嵌入式linux中文语言支持,嵌入式linux无法显示中文问题
  18. C++ OpenCV人脸图像提取
  19. 三菱PLC控制步进电机
  20. PC端哔哩哔哩动画下载的本地视频无法打开

热门文章

  1. android 波形图 动态,Android实现动态滚动波形图(心电图)功能
  2. es6——let和const
  3. gtsummary绘制三线表/基线资料表/表格
  4. 智能工厂管控平台促进纳恩博生产升级与管理创新
  5. 中级人工智能训练师认证题库
  6. 如何成为人工智能训练师的一员
  7. cesium 实战记录(一) 底图动态配置,前端实现切换
  8. 额叶脑电非对称性的评估和概念化
  9. 5款受用一生的自学网站,每天坚持一小步,成功一大步!
  10. 莱恩精工IPO被终止:年营收11.6亿 二代张秀卓接班