取字符串长度
sizeof()
对比前面字符串是不是一样
memcmp("11111", f, 5) == 0
一样则返回0
重定义变量内存空间
lytx=(char*)calloc(atoi(r),sizeof(char));//会自动清空
lytx=(char*)malloc(atoi(r));
复制字符串
memcpy(r, f+5, 6);// 从 f 变量第 5 个字符 开始复制,连续复制 6 个字符到 r变量
strcpy(lytx, f);//复制字符串 f 到 lytx
itoa():将整型值转换为字符串。
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制.
itoa(123);
ltoa():将长整型值转换为字符串。
ltoa("123");
arduino取随机数
random(10000,999999999);
操作函数外的指针
//调用
//sqkjbfzzfc(&mqtt_Server , (const char*)json_Array["mqtt_Server"]);
//申请内存空间 并复制字符串
//参数 a b a=b b给a赋值
void sqkjbfzzfc(char**a,const char*b){
if(*a != NULL){
Serial.println("释放内存***");
free(a);//释放
*a = NULL;//释放
}
Serial.printf("***********的字符串长度=%d\n", strlen(b)+1);
*a=(char*)calloc(strlen(b)+1,sizeof(char));//申请内存空间 n+1个 4字节 空间
strcpy(*a, b);//复制字符串
//a=b;
}
String 转 const char*
String 转 char*
String zfc = "就好好";
String zfc1 = zfc + "加加加";
const char* p = zfc1.c_str();
//char* p = zfc1.c_str();
//Serial.printf("\打印变量zfc= %s\n",(const char*)zfc);
//Serial.printf("\打印变量zfc1= %s\n",(const char*)zfc1);
Serial.printf("\打印变量p= %s\n",p);
Serial.printf("\打印长度zfc1= %d\n",zfc1.length());
char s[zfc1.length()];
int i;
for( i=0;i<zfc1.length();i++)
s[i] = zfc1[i];
s[i] = '\0';
Serial.printf("\打印变量s= %s\n",s);
网友评论