精华内容
下载资源
问答
  • C语言自定义头文件

    2021-05-31 17:30:19
    一些初学C语言的人,不知道头文件(*.h文件)原来还可以自己写的。只知道调用系统库函数时,要使用#include语句将某些头文件包含进去。其实,头文件跟.C文件一样,是可以自己写的。头文件是一种文本文件,使用文本...

    头文件其实就是类似<stdio.h>这样的.h文件,和c一样,但需要放在规定目录当中,文件中放置了一些函数声明,变量声明,常数定义,宏的定义等等。当使用#include语句将头文件引用时,就等价于将头文件中所有内容,复制到#include处。头文件的格式通常为:

    #ifndef DELAY_H

    #define DELAY_H

       //代码部分
    

    #endif

    的格式。

    其中,DELAY为一个唯一的标号,命名规则跟变量的命名规则一样。常根据它所在的头文件名来命名,例如,如果头文件的文件名叫做stc15w.h,那么可以这样使用:

    #ifndef 1

    #define 1

       //代码部分
    

    #endif

    这样写的意思就是,如果没有定义1,1,并编译下面的代码部分,直到遇到#endif。这样,当重复引用时,由于1已经被定义,则下面的代码部分就不会被编译了,这样就避免了重复定义。另外,使用#include时,使用引号“”与尖括号<>的意思是不一样的。使用引号“”时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录;而使用尖括号< >时,刚好是相反的搜索顺序。

    假设我们有两个文件名一样的头文件1.h,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I;另一个则保存在当前工程的目录下,我们把它叫做文件II。如果我们使用的是#include <>,则我们引用到的是文件I。如果我们使用的是#include “1.h”,则我们引用的将是文件II。

    /*--------------------------------------------------------------------------
    INTRINS.H
    
    Intrinsic functions for C51.
    Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH
    All rights reserved.
    --------------------------------------------------------------------------*/
    
    #ifndef __INTRINS_H__
    #define __INTRINS_H__
    
    #pragma SAVE
    
    #if defined (__CX2__)
    #pragma FUNCTIONS(STATIC)
    /* intrinsic functions are reentrant, but need static attribute */
    #endif
    
    extern void          _nop_     (void);
    extern bit           _testbit_ (bit);
    extern unsigned char _cror_    (unsigned char, unsigned char);
    extern unsigned int  _iror_    (unsigned int,  unsigned char);
    extern unsigned long _lror_    (unsigned long, unsigned char);
    extern unsigned char _crol_    (unsigned char, unsigned char);
    extern unsigned int  _irol_    (unsigned int,  unsigned char);
    extern unsigned long _lrol_    (unsigned long, unsigned char);
    extern unsigned char _chkfloat_(float);
    #if defined (__CX2__)
    extern int           abs       (int);
    extern void          _illop_   (void);
    #endif
    #if !defined (__CX2__)
    extern void          _push_    (unsigned char _sfr);
    extern void          _pop_     (unsigned char _sfr);
    #endif
    
    #pragma RESTORE
    
    #endif
    
    
    

    pragma用于指定一些编译信息:
    (1) #pragma message 用于自定义编译信息

    (2)#pragma once 用于保证头文件只被编译一次

    (3)#pragama pack用于指定内存对齐(一般用在结构体)

    展开全文
  • 解题思路:输入一个字符串,调用函数,遍历字符串中每一个字符,看是否含有aeiou字符,若有,将其保存到另一个字符型数组中,在主函数中对得到的字符型数组进行排序,输出。注意事项:题目要求顺序输出元音字母,若...

    解题思路:输入一个字符串,调用函数,遍历字符串中每一个字符,看是否含有aeiou字符,若有,将其保存到另一个字符型数组中,在主函数中对得到的字符型数组进行排序,输出。

    注意事项:题目要求顺序输出元音字母,若输入的是乱序的字符串,则要进行排序。得到的字符数组需以‘\0’结尾,表明字符串结束。字符数组应分配足够大的空间。

    参考代码:#include

    #include

    void mystrcat(char *p, char *q)

    {

    while (*q != '\0')

    {

    if (*q == 'a' || *q == 'e' || *q == 'i' || *q == 'o' || *q == 'u')

    {

    *p = *q;

    p++;

    }

    q++;

    }

    *p = '\0';

    }

    int main(void)

    {

    char a[100],b[100];

    gets(b);

    mystrcat(a,b);

    int len = strlen(a);

    for (int i = 0; i < len-1;i++)

    for (int j = i+1; j < len; j++)

    {

    if (a[i]>a[j])

    {

    char temp = a[i];

    a[i] = a[j];

    a[j] = temp;

    }

    }

    printf("%s\n",a);

    return 0;

    }

    展开全文
  • /*自定义函数以大写字母分隔省市区并返回市 解题思路: 1、遍历字符串,若有相邻两字母,前小写后大写字母,则在两字母中间插入一个分隔符,eg:@,并保存到新数组中 2、调用strtok函数把新数组分隔,首次分割省,第...

    /*自定义函数以大写字母分隔省市区并返回市
    解题思路:
    1、遍历字符串,若有相邻两字母,前小写后大写字母,则在两字母中间插入一个分隔符,eg:@,并保存到新数组中
    2、调用strtok函数把新数组分隔,首次分割省,第二次分隔为区
    */

    Action()
    {
    	char p[]="ZhejiangHangzhouXihu";	
    	lr_output_message("%s",substring(p));
    	return 0;
    }
    char *substring(char *str)
    {
    	int i;
    	int len;
    	char newStr[30];
    	char *province;
    	char *city;
    	province=(char *) malloc(sizeof(str));
    	city=(char *) malloc(sizeof(str));
    	len=strlen(str);
    	for (i=0;i<len;i++)
    	{
    		if('A'<=str[i+1] && str[i+1]<='Z' && 'a'<=str[i] && str[i]<='z')
    		sprintf(newStr,"%s%c@",newStr,str[i]);//若相邻两字母前一为小写后一为大写,则在两字母中间插入“@”,再一起保存到newStr
    		else
    		sprintf(newStr,"%s%c",newStr,str[i]);//否则直接把值保存到newStr     		
    	}
    //	lr_output_message("%s",newStr);
    	province=(char *)strtok(newStr,"@");//,字符串分割:不强制转换会报错:左边是char *,右边是int
    //	lr_output_message("%s",province);
    	city=(char *)strtok(NULL,"@");
    //	region=(char *)strtok(NULL,delim);
        free(province);
        free(city);
    //    free(region);
    	return city;
    }
    
    展开全文
  • 字符串排序和输出用自定义函数实现。 提示:可以用指针数组指向n个字符串。 输入数据有多组,每组第一行是一个整数n(0<=n<=20),接下来是n行,每行是一个长度不超过50的字符串。 输出排好序的字符串。每个...

    问题描述:用申请的动态开辟的内存空间存放n(0<=n<=20)个字符串,每个字符串的长度不超过50,将其保存,后排序输出。
    要求:每个字符串占用的空间是用动态开辟的内存分配的。字符串排序和输出用自定义函数实现。
    提示:可以用指针数组指向n个字符串。
    输入数据有多组,每组第一行是一个整数n(0<=n<=20),接下来是n行,每行是一个长度不超过50的字符串。
    输出排好序的字符串。每个字符串一行。
    代码一:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void sort1(char **pp,int n)
    {
        int i,j;
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-1-i;j++)
    		{
    			if(strcmp(*(pp+j),*(pp+1+j))>0)
    			{
    				char*temp=(char*)malloc(50*sizeof(char));
    				strcpy(temp,*(pp+j));
    				strcpy(*(pp+j),*(pp+1+j));
    				strcpy(*(pp+1+j),temp);
    			 } 
    		}
    	}
    }
    void output1(char *p[],int n)
    {
     int i;
     for(i=0;i<n;i++)
        printf("%s\n",p[i]);
    }
    int main()
    {
        void sort1(char **pp,int n);
        void output1(char *p[],int n);
        char str[50],*cp[20];
        int n,l,i;
        while(scanf("%d\n",&n)!=EOF)
        {
              for(i=0;i<n;i++)
              {
                  gets(str);
                 //start
                 cp[i]=(char*)malloc(strlen(str)*sizeof(char));
                 strcpy(cp[i],str);
                 //end
               }
               sort1(cp,n);
               output1(cp,n);
        }
        return 0;
    }
    

    代码二:

    #include<stdio.h>
    #include<stdlib.h>
    void compare(char **p,int n)
    {
    	int i,j;
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-1-i;j++)
    		{
    			if(strcmp(*(p+j),*(p+1+j))>0)
    			{
    				char *temp=*(p+j);
    				*(p+j)=*(p+1+j);
    				*(p+1+j)=temp;
    			 } 
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		printf("%s\n",*(p+i));
    	}
    }
    int main()
    {
    	int i,j,n;
    	char **str;//定义一个指向指针数据的指针 
    	str=(char**)malloc(20*sizeof(char*));
    	for(i=0;i<20;i++)
    	   str[i]=(char*)malloc(50*sizeof(char));
    	while(scanf("%d",&n)!=-1)
    	{
    		for(i=0;i<n;i++)
    		   scanf("%s",*(str+i));
    		compare(str,n);
    	}
    	return 0;
    }
    
    展开全文
  • 如何修改#define 定义的常量中的参数形容起来比较麻烦由于特殊情况不能直接将数据的参数传入一个函数中只能将保存该数据的变量名字传入函数中例如#include#include#defineNAMEaintmain(){inta,b,c;a=1;b=2;c=3;//这...
  • 保存到相册步骤: 1.保存图片到【相机胶卷】 2.拥有一个【自定义相册】 3.将刚才保存到【相机胶卷中的图片】引用到【自定义相册】 ... C语言函数UIImageWriteToSavedPhotosAlbum 2> AssetsLibrary框...
  • 指令+函数自定义函数+库函数)+语句 输出函数printf() 输入函数scanf() --不能接受空格,制表符,回车等 gets()能接受空格,制表符、回车等; 函数的常用语法: scanf("格式控制字符串",变量地址列表); ...
  • 郑 州 大 学;3;读取数据函数读取输入的数据信息 显示菜单函数显示可供选择的主菜单 显示记录函数... 字符输入函数从终端输入一个字符遇回车键返回 修改数据函数修改通讯录的成员信息 保存数据函数保存通讯录的成员信息
  • C语言讲义.doc

    2018-01-27 10:41:43
    1.6 C语言自定义名字的要求 15 1.7 PRINTF函数 15 1.8 RETURN语句 15 1.9 SYSTEM系统调用 15 1.9.1 System返回值在windows和unix下的不同, 15 1.9.2 POSIX 15 1.10 C语言编译过程,GCC参数简介 16 1.10.1 C语言编译...
  • c语言第三课

    2019-09-26 03:08:04
    函数函数调用、库函数、自定义函数 主函数:  是程序的入口。  int main(){  return 0;  } 头文件:  头文件往往只包含函数的说明,也就是告诉我们函数怎么用,而函数本身保存在其他文件中,在链接时...
  • 基于文件的C语言学生信息管理系统

    千次阅读 多人点赞 2019-04-03 20:45:36
    ●题目名称 ...为了程序的可读性,一般将文件的读取、存盘、操作自定义函数。 ●算法构造 ●●刷新学生信息update()函数 <1>以只读方式打开指定文件,判断文件是否为空,若为空,则提示...
  • 查找函数*/ 输入记录*/ 显示记录*/ 信息输出*/ 修改记录*/ 查询信息*/ 删除记录*/ 增加记录*/ 记录保存为文件*/ 从文件中读记录*/ 按学号排序*/ 分类统计*/ 自定义坐标函数*/ 密码函数*/ 主菜单函数*/
  • C语言学习2

    2019-10-02 11:58:51
    自定义头文件 建立一个新的文件夹 (以add函数为例)先写下一个.h文件,即头文件 .h文件:在保存的时候将扩展名改成.h即可 int add(int a,int b) { int y; y=a+b; return y; } 再写下一个.cpp文件 #include...
  • 对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。 2. C语言函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有...
  • 学习基础C语言之七

    2018-06-10 23:41:55
    2、宏定义和自定义函数的区别;===》内联函数; 3、#define和typedef; 4、结构体、共用体、枚举和位运算;大小端! 明天:链表 二级指针: 一级指针是变量 ===》既然是变量,所以肯定有地址! ==》有没有其他的手段...
  • 运用C语言做的通讯录,整体功能: (1)、可以随时检索、删除或增加新纪录、保存或取消新纪录。...假设将数据结构自定义为ADDR,用它定义的*top为第一个记录结构的指针,分别描述这些函数,建立他们的函数原型。
  •   图片操作---添加到自定义相册 实际上,自定义相册中的图片并不是实际的图片,而是对系统【相机胶卷】这个相册中的图片进行一个引用,所以将图片保存自定义相册的第一...(1)C语言函数保存 (2)AssetsLi...
  • 代码设计的概念,利用WIN-TC实现学生成绩管理系统的录入、查询、删除、统计等基本操作,使用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数(系统函数自定义函数)、...
  • C语言时间控制格式

    千次阅读 2015-01-14 21:00:55
    4.4 自定义时间格式 我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下: size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr ); 我们可以...
  • 7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。 8、读取功能:将保存在文件中的学生记录读取出来。 9、有一个清晰美观界面来调用各个功能 三、要求 1、整个系统均用C语言实现; 2、利用...
  • C语言中,整数都是以二进制的形式存放在内存中,所谓的二...您可以编写函数把其它进制数字转换成二进制数字,并保存在字符串中,然后在printf 函数中使用%s输出。 1、自定义的二进制输出函数dectobin 思路: 1)把十...
  • 1、指针是C语言中的一个非常重要的概念,实际上,OC系统类的变量、自定义类的变量等都是指针。定义指针变量的语法格式如下,其中*代表一个指针变量,整个语法代表定义一个指向特定类型的变量的指针变量。注意:指针...
  • 综合利用顺序、选择、循环等各种程序结构,使用自定义函数和二维数组,完成任务。 三、课程设计思路 3.1功能要求 该系统运行在DOS环境下,人机界面为命令行文本界面。完成的任务是对若干人的成绩信息进行管理,且...
  • //自定义函数声明 void addemp(void); //添加员工信息的函数 void findemp(void); //查找员工信息的函数 void listemp(void); //显示员工信息列表的函数 void modifyemp(void); //修改员工信息的函数 ...
  • 我们需要保存一个固定的日期,存放它是星期几,输入一个自定义的日期,通过二者的日期差推断出输入日是星期几 我们需要考虑每一年是闰年还是平年,这个关系我们的日期差到底是几。所以需要创建一个返回bool型变量的...
  • iOS 保存图片到相册

    2016-11-24 12:29:05
    开发步骤 ...图片控制器中的子视图包括UIScrollView、一个...C语言函数:UIImageWriteToSavedPhotosAlbum AssetsLibrary框架 Photos框架 自定义一个相册,相册名字一般为应用的名称 AssetsLibrary框架 Photos框架 将
  • 全局变量(自定义起,本文件前面要用需extern声明),局部变量函数内;2)生命周期,程序运行期间一直保存。 static修饰函数,限定作用域,本文件内。 1. enum类型变量大小为4(sizeof),不论enum成员数量。 2. ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

c语言自定义保存函数

c语言 订阅