一些常用的的C语言函数原型
【摘要】
在平时使用中需要用到的一些函数原型
现在既然开始写博客了,就把遇到过得,一点一点放上来。
..添加目录栏目 2021/9/17
123
目录
1、判断系统是大端系统还是...
在平时使用中需要用到的一些函数原型
现在既然开始写博客了,就把遇到过得,一点一点放上来。
..添加目录栏目 2021/9/17
- 1
- 2
- 3
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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
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; \
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
不仅仅是字符串,还可以组合 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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
文章来源: blog.csdn.net,作者:矜辰所致,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_42328389/article/details/119512702
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)