(1) 编写一个函数,提取一个字符串中的所有整数。整数提取规则为:连续
的数字字符构造一个整数,如果整数位数超过 6 位,则在第 7 位开始构建一
个新的整数。
(2) 编写一个函数,对(1)步提取的所有整数按照从小到大的顺序排序。
(3) 编写一个函数,输出提取的所有整数。
(4) 编写相关测试程序。
(没有学到指针)麻烦大神们给个详细的程序,做了几个小时了一直不成功。不知道在问题1中返回的值如何返回,并在2中使用,求详细解答,谢谢啦
【C语言编写函数问题】从键盘输入一个字符串,编写程序完成 如下功能:
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
10条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
纹枰老妖 2015-12-01 09:51最佳回答 专家已采纳#include “stdio.h”
#include “stdlib.h”
char string[1000]; //这个是您的字符串样本
int num[100]; //这个是字符串转换后的数值数组
int ad_num[100000];//这个是排序时所用的间接数组int Convert(char *s);
void Sort(int c);
void print(int c);
int main()
{
int num_Count;
printf("请输入您的字符串文本:\n"); //现在我们输入我们的字符串样本,按下回车键表示输入结束
scanf("%s", string);num_Count = Convert(string); //在这里把字符串文本中的数字都提取出来 printf("字符串转换后如下所示:\n"); for (int i = 0; i < num_Count; i++) printf("%d ", num[i]); printf("\n经过排序后的数值如下所示:\n"); Sort(num_Count); //在这里调用函数进行排序 print(num_Count); printf("程序运行完毕,按任意键退出!"); system("pause"); return 0;
}
int Convert(char *s)
{
int count=0, temp=0,a=0;
for (int i = 0; s[i] != '\0'; i++)
{
if (s[i] >= '0'&&s[i] <= '9')
{
temp = temp * 10 + (s[i] - '0'); //temp用来提取数字
if (temp > 99999) //如果数值大于99999,则把数值经过处理后赋值给num数组中的某一个元素
{
num[a] = (temp - (s[i] - '0')) / 10; //这个就是处理过程,因为检测时数值已经超过六位数,所以要减去个位数再 / 10
temp = s[i] - '0'; //把溢出的这个字符值保存在temp中
a++; //a在这个函数里只是用来当作num的下标而已
count++;
}
}
}
num[a] = temp; //最后不要忘了我们还有一个不大于99999的数值呢。。。
count++;
return count; //这个count用来表示提取出的数字可以组成多少个数值
}void Sort(int c) //抱歉,其它的排序算法不记得啥样了,所以这里用了一个本人最熟悉的吧
{
int a = 0;
for (int i = 0; i < c; i++) ad_num[num[i]]++; //这个循环是用来把num里的所有数值映射到ad_num数组中,每映射一次,对应的标记+1for (int i = 0; i < 100000; i++) //这个循环用来检测六位数里面哪些数值曾经出现在num里 { while (ad_num[i]>0) //因为ad_num里的这个元素大于0,这意味着对应的i数值至少在曾经的num里出现过一次 { num[a++] = i; //很简单,赋值即可 ad_num[i]--; //自然的,ad_num的标记要减一次 } }
}
void print(int c) //输出被排序过的num数组
{
for (int i = 0; i < c; i++) printf("%d ", num[i]);
}采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
报告相同问题?
相关推荐 更多相似问题
- 2015-11-30 15:11回答 10 已采纳 #include “stdio.h” #include “stdlib.h” char string[1000]; //这个是您的字符串样本 int num[100]; //这个是字符
- 2022-01-09 00:10回答 2 已采纳 #include <stdio.h> void delstr(char d[],char s[]) { int i=0,j=0; while(s[i])
- 2022-01-09 00:15回答 2 已采纳 你题目的解答代码如下: #include <stdio.h> int count(int d[], int n, int k) { int i, count = 0; f
- 2022-01-07 00:00Pegasus丶百战的博客 编写程序:对键盘输入的两个字符串进行连接。(strcat()可以简单完成此任务,但本题仍然规定不得调用任何字符串处理函数,包括strlen)。 例如:输入hello<CR>world<CR>,输出helloworld ...
- 2020-12-01 00:43如何编写C语言程序判断一个字符是否是字母或数字 怎样判断一个字符是否是一个字母? 字母表中的所有字母(包括计算机键盘上的所有键)都被赋予了一个值这些字符及其相应的值一起组成了ASCII字符集该字符集在北美欧洲和...
- 2020-09-23 19:24梁同学与Android的博客 编写程序:由键盘输入一个字符判断是字母数字还是其他符号。 #include<stdio.h> void main() { char a; scanf("%c",&a); if(a>='0' && a<='9') { printf("a是数字\n"); }else if(a>...
- 2021-05-29 16:06回答 3 已采纳 #include <stdio.h> #include <string.h> void cr(char *p); void main() { char s[10];
- 2022-04-16 15:12回答 1 已采纳 没问题啊,我跑的很正常。
- 2022-03-02 22:01回答 2 已采纳 两个字符串逐个字符比较,如果全相同返回0。找到第一个不同的字符,比较该字符大小即为结果。 #include <stdioh> int strlen(char *s) { int j
- 2021-05-24 04:59破风的正果的博客 代码如下:s=input("请输入一行字符:\n")alpha,num,space,other=0,0,0,0for i in s:if i.isalpha():alpha+=1elif i.isdigit():num+=1elif i.isspace():space+=1else:other+=1print('英文字符数{},数字字符数{},空格...
- 2021-05-16 02:32白追追的博客 JQuery编写注册添加页面JQuery编写注册添加页面 导入架包 head meta charset=UTF-8 title商品添加页面/title //导入jQuery架包 script src=jquery-3.3.1.js/script/head 建立好DOM节点,完成页面布局 div class=book...
- 2020-09-02 15:34主要介绍了C语言中可用于实现字符串压缩的简单算法小结,列举了包括哈夫曼算法等三个核心的程序实现算法,需要的朋友可以参考下
- 2019-08-30 19:09回答 2 已采纳 ``` #include #include #include void main() { extern void input_str(char str[]); e
- 2021-06-25 16:22回答 1 已采纳 s[i]>='0'&&s[i]<='9' s[i]==' ' fun(s1,a);
- 2018-11-29 15:57回答 2 已采纳 ``` #include "stdio.h" #include "stdlib.h" void del(char str[]); int main() {char s[80];
- 2021-05-18 09:06序雨的博客 } 另外,方法2相比优与方法1 (1)可计算出每个数字具体有几次。 (2)对于空格使用了函数isspace()。#include int main() { int c = 0; int num_count = 0; int emp_count = 0; int els_count = 0; int ...
- 2021-06-06 04:24创新工场的博客 #include #include #define MAX 100int main(){char str[MAX]; // 输入的字符串,最大长度是MAX-1,因为有一个字符串结束符int i = 0, count[52] = { 0 }; // count 数组用...
- 2021-05-06 15:22编程实现用getchar函数从键盘输入一个小写字母,并用putchar函数输出对应的大写字母。
- 2022-04-18 19:50回答 1 已采纳 望采纳 #include <stdio.h> int main() { char ch; int i=0; char a[256] = {0}; whi
- 2021-05-19 14:03行走的VCD的博客 c语言,编写一个函数,来判断一个数是否是回文数。(回文数就是像12321,正着读和倒着读都一样)?简单稍等马上好有大概分两种方法数学法和字符串法我就先发个字符串法的吧#include#includemain(){inti,nlen,...
- 没有解决我的问题, 去提问