习题8.16 (简单方法)输入一个字符串,内有数字和非数字字符
习题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 (简单方法)输入一个字符串,内有数字和非数字字符相关推荐
- 题8.16:输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续的数字作为一个整数, 依次存放到一数组a中。例如, 123 放在a[0
题目 本题是谭浩强<C程序设计课后习题>题8.16. 题目: 16. 输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续 ...
- 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a1[1].
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a1[1]- ...
- 输入一个字符串内有数字和非数字字符,例如:A123x456...
#include <stdio.h> #include <string.h> #include <math.h> int main() { void sum_out ...
- 【问题描述】输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并
[问题描述]输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并 ...
- .输入一行字符串,含有数字和非数字字符以及空格等,如: df23adfd56 2343?23dgjop535 如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依
.输入一行字符串,含有数字和非数字字符以及空格等,如:df23adfd56 2343?23dgjop535如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依次输 ...
- 习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中。
习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123存入在a[0],456 ...
- 【C】8.16输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 ,将其中连续的数字作为一个整数,依次存放到一数组a中。例如:123放在a[0],456放在
//输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 //将其中连续的数字作为一个整数,依次存放到一数组a中. //例如:123放在a[0],456放在a ...
- 输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……
输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a[1]-- ...
- 输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中……
/*输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中 ...
- 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]...
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a[1]-统计 ...
最新文章
- Selenium-switch_to_window出现删除线
- 马斯克的星际飞船首次起飞测试成功!起跳150米后平稳着陆,“火星在望”
- 【翻译】如何创建Ext JS暗黑主题之一
- 在Java中使用Socket模拟客户端和服务端(多线程)
- android studio放置在函数上面看_Android中用Kotlin协程和Retrofit进行网络请求和取消请求...
- 数据中心机房常用通信管道塑料管材
- 深港澳大湾区(深圳).NET技术交流会圆满成功
- 使用Django的models创建mysql数据库
- 使用mysqlimport导入包含主键自增长属性的表
- 从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的(网易)。...
- [CareerCup] 9.1 Climbing Staircase 爬楼梯
- Java中高级面试必问之多线程TOP50(含答案)
- 【APIcould】连接手机,通过APPLoader在手机上实时展示项目效果
- 软考——系统架构设计师工作日志
- was compiled with optimization - stepping may behave oddly; variables may not be available.
- 2020.9.2丨遗传图谱产品类型
- 容迟网络中的路由算法学习笔记
- 一个大专生的java从业心路历程
- python 期货现货差价监测_期货现货价差小工具——天勤量化(TqSdk)
- 导入EXCEL报错:外部表不是预期的格式错误、文件格式和扩展名不匹配,文件可能已损坏或不安全的解决方法
热门文章
- 监控数据恢复取证-盘点进水监控硬盘的数据恢复
- ARINC485和RS485的区别
- 计算机系统应用 莫军,ARINC653分区操作系统多核处理器任务调度设计
- matlab数组元素的个数,matlab数组元素个数
- 在计算机网络中软件资源共享是指,在计算机网络中,软件资源共享指的是什么...
- 渗透测试(445端口)
- JavaWebDay13_课程回顾,Tomcat软件,Servlet入门.
- 数字图像处理技术对军事与公安的帮助
- 计算机机房安全消防管理制度,机房消防安全管理制度
- 山西省计算机二级考试试题,2011山西省计算机等级考试试题 二级C试题考资料