一些常用的的C语言函数原型

在平时使用中需要用到的一些函数原型
现在既然开始写博客了,就把遇到过得,一点一点放上来。
..添加目录栏目 							2021/9/17      

1、判断系统是大端系统还是小端系统

    #include <stdio.h>
    /*
    小端系统: 低位数据存储在地地址内存中
    大端系统: 低位数据存储在高地址内存中

       0 x 00 00 00 01

    小端系统: [0X01][ 0 ][ 0 ][ 0 ]
               低   --------->   高
    大端系统: [0][ 0 ][ 0 ][ 0X01 ]
              低   --------->   高

    */
    int isLittleEnd()
    {
        union 
        {
            int i;
            char a[4];
        }test ={0};

        test.i = 1;
        return (test.a[0] == 1); //返回1,小端系统
    }
    int main(){
        printf("System Endian:%d\n",isLittleEnd());
        return 0;
    }

在这里插入图片描述

2、交换两个变量的值

#define SWAP3(a,b)  \
{					\
	 a = a ^ b;     \
	 b = a ^ b; 	\
	 a = a ^ b;		\
}

#define SWAP2(a,b)  \
{					\
	 a = a + b;     \
	 b = a - b; 	\
	 a = a - b;		\
}

#define SWAP1(a,b)  \
{					\
	 int t = a;     \
	 a = b;    		\
	 b = t;    		\
}

3、获取字符串中两个字符之间的的数据

/*C获取字符串中两个字符之间的的数据*/
#include <stdio.h>
#include <string.h>
#define SUCCESS 0
 
int test(char *pcBuf, char *pcRes)
{
	char *pcBegin = NULL;
	char *pcEnd = NULL;
 
	pcBegin = strstr(pcBuf, ",");
	pcEnd = strstr(pcBuf, "3");
 
	if(pcBegin == NULL || pcEnd == NULL || pcBegin > pcEnd)
	{
		printf("Mail name not found!\n");
	}
	else
	{
		pcBegin += strlen(":");
		memcpy(pcRes, pcBegin, pcEnd-pcBegin);
	}
 
	return SUCCESS;
}
//+MIPLREAD:0,18172,3200,0,5750

int main()
{
	//char cBuf[40960] = {"MAIL FROM:<test1@163.com>\r\n"};
    char cBuf[40960] = {"+MIPLREAD:0,18172,3200,0,5750"};
	char cRes[40960] = {0};	
 
	test(cBuf, cRes);
 
	printf("%s\n", cRes); 
	return SUCCESS;
}

在这里插入图片描述

4、组合字符串

#include<stdio.h>

void main(void)
{
    int a = 0;
    signed char buffer[20];
    signed char *AT ="AT+RST";
    signed char *BACK ="-13212";
    signed char *END ="+END";
    sprintf(buffer,"%s%s",AT,BACK);
    printf("%s\r\n",buffer);
    for(a=0;a<20;a++){
        buffer[a]=0;
    }
    sprintf(buffer,"%s,%s,  ,",AT,BACK);
    printf("%s\r\n",buffer);
    sprintf(buffer,"%s%s",buffer,END);
    printf("%s\r\n",buffer);
    sprintf(buffer,"%s%s",buffer,buffer);
    printf("%s\r\n",buffer);
}

在这里插入图片描述

不仅仅是字符串,还可以组合 json 的数据:

#include<stdio.h>

#define ONENET_POST_BODY_FORMAT "{\"id\":123,\"dp\":%s}"

void main(void)
{
    char jsonBuf[178];
    char param[82];
    int a = 0;
    float T= 25.6;
    float H= 30;
    float mw= 90;
    signed char buffer[20];
    signed char *AT ="AT+RST";
    signed char *BACK ="-13212";
    signed char *END ="+END";
    sprintf(buffer,"%s%s",AT,BACK);
    sprintf(param, "{ \"tem\":[{\"v\":%.2f}] ,\"hum\":[{\"v\":%.2f}] ,\"adc\":[{\"v\":%.2f}] }", T,H,mw); //我们把要上传的数据写在param里
    printf("%s\r\n",buffer);
    // for(a=0;a<20;a++){
    //     buffer[a]=0;
    // }
    // sprintf(buffer,"%s,%s,  ,",AT,BACK);
    // printf("%s\r\n",buffer);
    // sprintf(buffer,"%s%s",buffer,END);
    // printf("%s\r\n",buffer);
    // sprintf(buffer,"%s%s",buffer,buffer);
    // printf("%s\r\n",buffer);
    printf("%s\r\n",param);
    sprintf(jsonBuf, ONENET_POST_BODY_FORMAT, param);
    printf("%s\r\n",jsonBuf);
    
}

在这里插入图片描述

5、把小写字母变成大写字母

void l_to_b(char s[], int len)
{
	int i=0;
	for(i=0;i<len;i++)
		if(('a' <= s[i]) && (s[i] <= 'z')) //小写的 a-z
			s[i] = (s[i] - 'a') + 'A'
}
int main()
{
	char str[] = "qianzhiheng test";
	1_to_b(str, strlen(str));
	printf("%s\n",str);
	return 0;
}

6、生成随机数

使用srand();设定种子
然后使用rand()生成随机数。如果 不使用 srand(); ,和使用srand();设置为某个常数一致,会变成伪随机。

#include <stdlib.h>

u16 iseed;

//在 srand(iseed) 前得进行操作,使得 iseed 每次不一样

srand(iseed); //

int random(void){
    int i;
    i = rand() % 100; //0到100之间的随机数
		if(i == 0)i++; //这个示例返回的随机数设定不能是0 ,所以有这么一步 
    return i;   
}
  • 1
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页
评论

打赏作者

矜辰所致

您们的鼓励是我奋斗的动力!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值