如何将字符数组里的内容转换成uint8的类型?将一个字符数组里面的所有元素变成一个字符串?

  1. 如何将字符数组里的内容转换成uint8的类型?

   time_t t;  
   struct tm *p;
   t=atoi(myTime);//myTime里面放的是一个时间戳:char myTime[11] = "1516766898"
   p=gmtime(&t);  //gmtime是把日期和时间转换为格林威治(GMT)时间的函数。
   char s[12]="";  
   strftime(s, sizeof(s),"%S%M%H%d%m%Y", p);//strftime函数的功能将时间格式化,或者说格式化一个时间字符串。 

 uint8_t  write_addr[]={0x80,0x82,0x84,0x86,0x88,0x8c};//写秒、分、时、日、月、年的寄存器地址
 如何将s里的内容传给void write_1302( write_addr, uint8_t dat)函数?

2.将一个字符数组里面的所有元素变成一个字符串?
例如:char ch[6]={'a','b','c','d','e','f'},s;

变成s=abcdef(注意:在以后出现s就是abcdef)

首先要明确的是,“字符串”在C语言中的含义实际上就是一个char类型的指针或数组,且最后一位置为0标记字符串的结束。所以,你所说的”字符数组“我是否可以理解为一个没有终结符0的char类型数组?这样的话,方法如下:

#include <string.h>
int main() // 这里为了方便直接用main函数
{
    char array[] = { 'h', 'e', 'l', 'l', 'o' };
    /* 需要注意的是,这里没有终结符,故需要知道数组的 */
    /* 大小(数组的大小是编译时常量)*/
    char *dest_str; // 目标字符串
     
    dest_str = (char *)malloc(sizeof(char) * (sizeof(array) + 1));
    /* 为字符串分配堆空间 */
     
    strncpy(dest_str, array, sizeof(array));
    // 用C标准库函数strncpy拷贝字符
     
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weibo1230123/article/details/80278514