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


我用的办法比较简单,直接看代码理解:


#include<stdio.h>
//统计数字
void number(char s[], int a[]){ char *p=s;int term,i=0;  //term用来提取整数while(*p!='\0'){while((*p<'0'||*p>'9') && (*p!='\0'))  //非数字字符p++;term=0;while(*p>='0'&&*p<='9'){term=term*10+(*p-48);//这里(*p-48)是关键!看下边讲解p++;}a[i++]=term;  //提取出来的整数放到数组里}printf("共%d个数:",i);for(i=0;a[i]!=0;i++)  //这里将a[i]!=0作为终止条件的前提是,a数组要初始化为0printf("%d  ",a[i]);
}
int main(){char s[100]; int a[10]={0};printf("Enter a string:");gets(s);number(s,a);printf("\n");return 0;
}

划重点!!!

字 符 ‘0’ ≠ 整 数 0

上面的s数组是char类型,它所存的数字字符0,1,…,9,其实是’0’,‘1’,…,‘9’,它们的ASCII码值分别是整数48,49,…,57,而int类型的0,1,…,9就是它们本身。

所以!在把字符数组中的数字存到整数数组中时,要把字符转换成整数,而不是直接搬过去

这里可以看出一个规律,字符’0’~'9’的值比整数0-9的值大48,所以要把字符减去48得到真正的数字。

习题8.16 (简单方法)输入一个字符串,内有数字和非数字字符相关推荐

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

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

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

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

  3. 输入一个字符串内有数字和非数字字符,例如:A123x456...

    #include <stdio.h> #include <string.h> #include <math.h> int main() { void sum_out ...

  4. 【问题描述】输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并

    [问题描述]输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并 ...

  5. .输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依

    .输入一行字符串,含有数字和非数字字符以及空格等,如:df23adfd56 2343?23dgjop535如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依次输 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Selenium-switch_to_window出现删除线
  2. 马斯克的星际飞船首次起飞测试成功!起跳150米后平稳着陆,“火星在望”
  3. 【翻译】如何创建Ext JS暗黑主题之一
  4. 在Java中使用Socket模拟客户端和服务端(多线程)
  5. android studio放置在函数上面看_Android中用Kotlin协程和Retrofit进行网络请求和取消请求...
  6. 数据中心机房常用通信管道塑料管材
  7. 深港澳大湾区(深圳).NET技术交流会圆满成功
  8. 使用Django的models创建mysql数据库
  9. 使用mysqlimport导入包含主键自增长属性的表
  10. 从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的(网易)。...
  11. [CareerCup] 9.1 Climbing Staircase 爬楼梯
  12. Java中高级面试必问之多线程TOP50(含答案)
  13. 【APIcould】连接手机,通过APPLoader在手机上实时展示项目效果
  14. 软考——系统架构设计师工作日志
  15. was compiled with optimization - stepping may behave oddly; variables may not be available.
  16. 2020.9.2丨遗传图谱产品类型
  17. 容迟网络中的路由算法学习笔记
  18. 一个大专生的java从业心路历程
  19. python 期货现货差价监测_期货现货价差小工具——天勤量化(TqSdk)
  20. 导入EXCEL报错:外部表不是预期的格式错误、文件格式和扩展名不匹配,文件可能已损坏或不安全的解决方法

热门文章

  1. 监控数据恢复取证-盘点进水监控硬盘的数据恢复
  2. ARINC485和RS485的区别
  3. 计算机系统应用 莫军,ARINC653分区操作系统多核处理器任务调度设计
  4. matlab数组元素的个数,matlab数组元素个数
  5. 在计算机网络中软件资源共享是指,在计算机网络中,软件资源共享指的是什么...
  6. 渗透测试(445端口)
  7. JavaWebDay13_课程回顾,Tomcat软件,Servlet入门.
  8. 数字图像处理技术对军事与公安的帮助
  9. 计算机机房安全消防管理制度,机房消防安全管理制度
  10. 山西省计算机二级考试试题,2011山西省计算机等级考试试题 二级C试题考资料