输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……
输入一个字符串,内有数字和非数字字符,例如:
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]……相关推荐
- 习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中。
习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123存入在a[0],456 ...
- .输入一个字符串,内有数字和非数字字符,例如: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 ...
- 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a1[1].
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? ,302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a1[1]- ...
- 题8.16:输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续的数字作为一个整数, 依次存放到一数组a中。例如, 123 放在a[0
题目 本题是谭浩强<C程序设计课后习题>题8.16. 题目: 16. 输入一个字符串, 内有数字和非数字字符, 例如:A123x456 17960 ? , 302tab5876,将其中连续 ...
- 输入一个字符串,内有数字和非数字,例如:A123x456 17960,将其中连续的数字作为一个整数,依次放到一数组a中。例如,123放在a[0],456放在a[1],统计共有多少个整数,并输出这些数。
代码如下: #include <stdio.h> #include <string.h> #include <ctype.h> #include <mallo ...
- 【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 将其中连续的数字作为一个整数,一次存放到一个数组中。
输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,一次存放到一个数组中. #include <stdio.h> ...
- 输入一个字符串,内有数字和非数字字符,例如A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依此存放到一个数组a中。
输入一个字符串,内有数字和非数字字符,例如A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依此存放到一个数组a中.例如,123放在a[0],456放在a[1]... ...
最新文章
- 图像和视频的快速去雾算法研究
- AIX 添加开机启动项
- A Convolutional Neural Network for Modelling Sentences阅读笔记
- 链表的基本操作 java_详细实现单链表的基本操作【Java版】
- Halcon和Opencv的区别?
- 使用内存回流的方法来实现将image的内容转换为 byte[]
- 阿里P7大牛整理!BAT大厂面试基础题集合,成功入职字节跳动
- 小猴子蓝裤黄袄 即时通讯
- 二维数组最大连通子数组之和
- Android学习笔记(六)——CheckBox复选框
- AcWing 1978. 奶牛过马路(前缀和)
- 北京交通大学离散数学 谓词逻辑_离散数学_北京交通大学_中国大学MOOC(慕课)
- Flask框架学习笔记9-jinjia2模板语言
- WebSocket简介
- Ext Gwt 实用例子--类似meebo的聊天界面
- Ubuntu安装Nixnote,解决印象笔记(国服/中国区)登录不能显示输入密码的问题
- 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks
- Android属于绑定服务特点是,Android P HIDL服务绑定模式与直通模式的分析 (原创)
- 郎鹤焱张鹤伦计算机学院,德云社都是“低学历”?郎鹤焱、阎鹤祥都毕业于北京工业大学...
- Docker学习笔记 (4)
热门文章
- 基于Python实现有效前沿(Efficient Frontier)
- python turtle画龙卷风,打电话给xtail龙卷风.过程.子过程
- java pdf 插入图片_java实现在pdf模板的指定位置插入图片
- vhdl写模十计数器(可任意选择)
- texlive 2021 安装之后双击之后闪退解决
- 级联查询ajax,Jquery+Ajax下拉框级联查询
- week 2(python)
- 微信小程序-bug-调用wx.login()无响应的原因和解决方案
- Excel中Lookup函数使用大全
- vue 登录页vue模板_Vue材质设计管理员模板