找回密码
 注册
关于网站域名变更的通知
查看: 235|回复: 2
打印 上一主题 下一主题

c51单片机编程将数组转化为字符串怎么编程?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-12-6 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在51单片机中比如{1,2,3,4,5,6}转化为“123456”这种字符串 怎么编程? ! B' u% y) O! o5 j0 l2 q

该用户从未签到

2#
发表于 2021-12-6 11:15 | 只看该作者

1 r: i) l1 i0 E/ [- z6 k: w; W, P楼主想把数组变成字符串干嘛用呢% h2 @! M! L8 f" u- l( |
(我在搜百度时,发现我们论坛这个问题也没回答,所以就此发表一点个人见解)
- Y5 P; o+ D+ n: }  U* l我在lcd12864里:打印一串字符用         LCD12864_write_word(变量);
3 {0 @( b0 i1 I8 \$ ]比如 LCD12864_write_word("00");1 _9 w: r5 ?7 U$ M- h8 {" Y
变量当然可以是字符串      
: H6 x- N4 T& b! I那么我添加加如下代码- r3 k0 z. g" e$ Z3 T
u8 arry[5]={1,1,1,1,1};  //欲转换的数组
* Y5 @* W. [, L- C% s0 A' P0 ~6 eu8 str[]="12345";          //原本的字符串; e; [3 _  o2 K8 @$ F1 e4 S
u8 i;  l/ m; v+ N! W& K) I( `& I
        for(i=0;i<5;i++){0 F2 j- |6 `- V. N; ~' h+ J+ G
        str[i] = arry[i] +0x30;
+ Q4 ~8 Q% p8 a+ g) I}
) H$ t1 u. u1 [8 I% P* f0 x& Y2 V显示 LCD12864_write_word(str);       : w3 G! e; M. A+ u* Z6 K* _' Z3 G- S( Q
就变成了11111
; {5 K( H3 i6 r0 h8 u一个数字0x30(十进制48)是字符0,不明白的话搜下ascii码表有帮助
. m) f, e. V& S% Q  X8 \& u

该用户从未签到

3#
发表于 2021-12-6 13:19 | 只看该作者

% o4 ~2 v5 M, b# y1 }/*$PAGE*/ $ s. z2 W+ i! W0 z& I9 I% F
/*
+ o1 @; o( ^, \- z) x, ^0 E*********************************************************************************************************
( M! a3 H4 p5 C*                                       HexToStr
( A9 X7 g0 @" [. N( Q* Functions  : Hex转字符串
- g; E8 W5 d' p3 Q2 v/ _5 s; x, F* n*
+ j) D7 [- Q7 S5 |2 A) I4 L* Arguments  : pSrc                 被转换的Hex地址
4 O; j- B0 q8 D- b9 N0 M*              pDst                 被转换后的字符串地址
  y3 t7 x( U/ w*              LimitLen             目的地址空间限制长度  & j& n' o* A% k8 c4 @
*                       , f$ C: L* h* @6 t9 I/ L2 W
* Returns    : 无5 ^( A% u; a( h5 k( G
*********************************************************************************************************( I* O& @4 y$ s& X6 \
*/; l! J( ]' D, ]
CPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen)
! B4 S3 U$ q% u  b: C/ S{* a" [* K( I: H9 z0 S. f
    CPU_INT16U i = 0;# F& [  N3 j  l/ \
    CPU_INT08U ddl, ddh;! u2 d! t2 e# d2 t# l
    CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;
) D( R5 E1 b+ [    CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;
9 c; \/ @5 ~- _9 Q3 Y4 l   , h5 K: U( l: o, ~3 c5 N
    CPU_INT16U ValidLen = LimitLen >> 1;" n: y6 |6 M" L
   . `$ q8 X- I* n$ @% {; q0 A8 B% {
    for (i = 0; i < ValidLen; i++)3 k! d# r3 B9 a
    {, ?0 Z: _3 F9 l/ r* V7 k( L7 x! n& c4 C
        ddh = 48 + pSrcBuff[i] / 16;
: z" X  k. o, ~) T7 M; Y( F, A        ddl = 48 + pSrcBuff[i] % 16;
' U4 s0 B* A4 P. d' q( i        * I+ s. q8 c3 W: `
        if (ddh > 57)
0 S3 f* C8 _! G& z, r        {0 v3 c% Y' V  [, E% [5 m  E
            ddh = ddh + 7;  ^* K' X) t% Y4 g1 Q8 z- p
        }
/ H/ B3 q+ h/ @3 d        if (ddl > 57)
% }" U$ P) ]& m        {4 _& \1 Y' b* B" x6 N( Z9 h
            ddl = ddl + 7;
( ~) J) t  r6 y% ?        }
4 |& f' j; M& I/ {; f/ r/ N        & B+ d; |  n' ]; L
        pDstBuff[i * 2] = ddh;% M  b- J, b4 H; Z. y* ~
        pDstBuff[i * 2 + 1] = ddl;* J% B8 M5 S4 m" X$ N) j0 _
    }
; P3 O  q: R. ^+ N   
* J( L$ v1 G' G1 u8 ^    if (LimitLen % 2 != 0)
5 I# f# K, E$ W        pDstBuff[LimitLen * 2] = '\0';
1 h" M  A  h' d, s3 t9 p}: Q" y# r& o$ m1 q# r! E
自用代码,可以参考
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-18 17:34 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表