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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在51单片机中比如{1,2,3,4,5,6}转化为“123456”这种字符串 怎么编程? $ U* U% k, w1 w/ q, l' l

该用户从未签到

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

& H+ Y# E  U( {8 t, \* W1 G( k楼主想把数组变成字符串干嘛用呢  Y; C# u# M/ e* j& w
(我在搜百度时,发现我们论坛这个问题也没回答,所以就此发表一点个人见解), h9 N" N' A) }% _- q1 n# G
我在lcd12864里:打印一串字符用         LCD12864_write_word(变量);: N' W# y. v4 W
比如 LCD12864_write_word("00");
  z. g! z4 t$ V* h变量当然可以是字符串       ' t  D9 T: M- ]! H3 p+ Z2 }- G, w
那么我添加加如下代码' \6 M6 Q2 B% K& M
u8 arry[5]={1,1,1,1,1};  //欲转换的数组1 v) ?# |$ F! \  {
u8 str[]="12345";          //原本的字符串
: |* _2 m0 @+ {, I6 b- ^: A. D* ^4 b! Fu8 i;2 g! o& I, J0 }4 \) h
        for(i=0;i<5;i++){1 e# k) P' h+ J8 x1 e
        str[i] = arry[i] +0x30;
" |" s5 E- b5 M; f4 U* B6 O, T}) |, F# p/ B* b
显示 LCD12864_write_word(str);      
) A  |. L) P0 M; m2 r3 P就变成了111114 M4 d/ O3 |$ d- v5 r: S
一个数字0x30(十进制48)是字符0,不明白的话搜下ascii码表有帮助
  B8 }, v/ M4 C: R6 t

该用户从未签到

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

' d! E. B4 c% P3 c  s/ w5 E3 E+ ^/*$PAGE*/
) u- R+ i8 Y9 x/*
+ r* x  s2 o: q% [- \+ ]*********************************************************************************************************
5 O6 [- w- s, \! {0 \1 K' t# j*                                       HexToStr5 u" `* i; u* D- I
* Functions  : Hex转字符串. J/ ~+ ^5 }# s- T" \
*4 Q! x0 N# a* T& O; ]% l1 x6 c
* Arguments  : pSrc                 被转换的Hex地址
$ K. P. ]6 b" e( x( T3 J*              pDst                 被转换后的字符串地址0 y/ p' {5 K( Y: P  t* y% w9 I: V
*              LimitLen             目的地址空间限制长度  1 C3 \( `# |' B$ T: `8 p
*                       
, N/ _1 l: j; y2 R% s* Returns    : 无* v' C) x& @; E  q! H! d
*********************************************************************************************************( [+ ?& W2 q6 d  N) k& `) n# m
*/; F$ }  Z' N2 Z0 Z/ W, V
CPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen)
. ]- X2 x' M* T; s. q/ [{3 X. ~4 X5 Z7 U9 [4 o
    CPU_INT16U i = 0;
0 B5 H1 e) M8 H6 H: y0 Q$ U    CPU_INT08U ddl, ddh;2 e- W* }/ d) I
    CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;4 b  A% _4 R+ G) \6 L& O
    CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;8 v- o* C% N/ p  j
   , F+ V& u: {1 @: Y$ W. q3 e
    CPU_INT16U ValidLen = LimitLen >> 1;
+ `; z4 d' a4 p   1 k5 d" M: \! L/ N" p1 S
    for (i = 0; i < ValidLen; i++)+ P0 k+ O8 J& M6 H, w9 \! H
    {2 @) U+ p( M: w' X
        ddh = 48 + pSrcBuff[i] / 16;% N5 H) {  @6 [* W
        ddl = 48 + pSrcBuff[i] % 16;
7 A' }1 ^& {% D        & p& E/ I! R1 g' P
        if (ddh > 57)4 I' P' W, l) \" G0 V/ }
        {
5 a2 u2 y+ ~- t$ M            ddh = ddh + 7;
* A0 `, k* Z+ s& e) j! F$ i- @        }
/ a5 \' J% l* s) T" `- L$ D& \0 D        if (ddl > 57)3 z1 X8 S$ S4 Y. K
        {- A. w3 N: N# c  U' _7 R; K  v
            ddl = ddl + 7;3 `) I( p2 v; W$ x7 `& o8 U" S
        }
( {9 r6 }( M0 T+ ]# Q        % F9 {3 u; e' `7 g, J
        pDstBuff[i * 2] = ddh;: n3 b$ R! T" q7 _! o- }
        pDstBuff[i * 2 + 1] = ddl;
( i7 f, D3 }" T1 z9 t; G    }( J; A6 o) l" g5 S6 Y6 F; P
   
7 ^8 n3 x  G# a+ V: q. Q    if (LimitLen % 2 != 0)4 G$ C$ R+ z2 H+ m2 t: c: f$ o
        pDstBuff[LimitLen * 2] = '\0';% h: k, X! B- K* P6 A5 q. t; d# p
}
' ~5 x1 x* A6 L& M: \1 D自用代码,可以参考
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 13:49 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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