C语言程序练习——(写一个函数,它的原形是int continumax(char *outputstr,char *intputstr))

简介: C语言程序练习——(写一个函数,它的原形是int continumax(char *outputstr,char *intputstr))

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)。

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,

并把这个最长数字串付给其中一个函数参数outputstr所指内存。

例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,

outputstr所指的值为123456789


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int continumax(char *outputstr, char *intputstr)
{
  int max_num_len = 0;
  int flag = 0;
  int i = 0;
  int count = 0;
  int area_i = 0;
  int area_end_i = 0;
  char *tmp = intputstr;
  char s1[1024];
  while(tmp[i] != '\0')
  {
  if(tmp[i] > 47 && tmp[i] < 58)
  {
    if(flag == 0)
    {
    area_i = i;
    flag = 1;
    count++;
    }
    else if(flag == 1)
    {
    count++;
    }
    ++i;
  }
  else
  {
    if(flag == 1)
    {
    if(count > max_num_len)
    {
      area_end_i = i;
      max_num_len = count;
      int j;
      for(j = area_i;j < area_end_i;j++)
      {
      outputstr[j - area_i] = intputstr[j];
      }
    }
    count = 0;
    flag = 0;
    }
    ++i;
  }
  }
  if(flag == 1)
    {
    if(count > max_num_len)
    {
      area_end_i = i;
      max_num_len = count;
      int j;
      for(j = area_i;j < area_end_i;j++)
      {
      outputstr[j - area_i] = intputstr[j];
      }
    }
    count = 0;
    flag = 0;
    }
  return max_num_len;
}
int main ()
{
  char *str = "abd1234xsac2231231xasc111";
  char *outputstr = (char *)malloc(1024); 
  int intputstr = continumax(outputstr, str);
  printf("intputstr = %d\n", intputstr);
  printf("outputstr = %s\n", outputstr);
  return 0;
}
/*
continumax(outputstr, str);
这个,只是传入了指针 ,用
continumax(char *outputstr, char *intputstr)
接之后,会退化成指针变量,只能修改malloc里面的值,而不能修改 outputstr指向的位置
continumax(&outputstr, str);
这个传入指针地址,用
 continumax(char **outputstr, char *intputstr)
 用二级指针接之后,能修改output指向的位置 
*/


相关文章
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
99 1
|
3月前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
101 4
|
3月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
99 5
|
3月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
81 2
|
3月前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
72 1
|
3月前
|
人工智能 算法 C语言
编写函数isprime(int a),用来判断自变量a是否为素数,若是素数,函数返回整数1,否则返回0
通过上述代码和解释,我们实现了一个高效判断素数的C语言函数 `isprime`。该函数结合了基础判断和优化的循环逻辑,确保高效准确地判断给定整数是否为素数。希望本文能帮助你更好地理解和实现素数判断算法。
73 1
|
4月前
|
存储 C语言
使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小
【10月更文挑战第13天】使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小。
141 1
|
4月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序
|
4月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
5月前
|
存储 编译器 程序员
C语言程序的基本结构
C语言程序的基本结构包括:1)预处理指令,如 `#include` 和 `#define`;2)主函数 `main()`,程序从这里开始执行;3)函数声明与定义,执行特定任务的代码块;4)变量声明与初始化,用于存储数据;5)语句和表达式,构成程序基本执行单位;6)注释,解释代码功能。示例代码展示了这些组成部分的应用。
186 10

热门文章

最新文章