搜索
bottom↓
回复: 13

求助 如何实现将char=‘abcd’差分为 a b c d四个char数据?

[复制链接]

出0入0汤圆

发表于 2010-10-6 21:43:26 | 显示全部楼层 |阅读模式
求助  如何实现将char=‘abcd’差分为 a b c d四个char数据?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-10-6 21:58:27 | 显示全部楼层
用指针

出0入0汤圆

发表于 2010-10-6 22:17:26 | 显示全部楼层
啥语言的?很多语言都有字符串相关的函数!一般vb是测长!用循环用中间取一个一个取出来

出0入0汤圆

发表于 2010-10-6 22:19:35 | 显示全部楼层
指针

出0入0汤圆

 楼主| 发表于 2010-10-6 22:42:17 | 显示全部楼层
能否具体点那?  新手啊   !  对字符指针很不理解!

出0入0汤圆

发表于 2010-10-6 22:56:42 | 显示全部楼层
#include "stdio.h"
main()
{
   int a='ab';
   char * pointer1;
   int i=0;
   pointer1=&a;
   for(i=0;i<2;i++)
   {
    printf("%c\n",*pointer1);
    pointer1++;
   }
   getch();
}
用WIN-TC编译运行结果是输出
a
b

出0入0汤圆

发表于 2010-10-6 22:57:22 | 显示全部楼层
char 就是一个指针  指向字符串的首元素地址 所以

*char = 'a'

*char+1 = 'b'

*char+2 = 'c'

*char+3 = 'd'

*char+1 跟 *(char+1) 都行

出0入0汤圆

 楼主| 发表于 2010-10-6 23:36:34 | 显示全部楼层
非常感谢   使用A-smith的方法 可以!
另外如何将uint32  格式转换为cahr格式  在ADS1.2  下!  谢谢!

出0入0汤圆

发表于 2010-10-7 12:06:20 | 显示全部楼层
强制类型转换   可以隐式转换 也可以直接转换

在要转换的变量前加 (uint8) 就强制类型转换了

uint8      a;

uint32           b;

(uint8)b  就是一个 char型变量了

a = (uint8)b;

出0入0汤圆

 楼主| 发表于 2010-10-8 21:40:56 | 显示全部楼层
感谢 A-smith

我现在的做法是    uint32  wendu     char  lcdcode_3[];

                 c=wendu/1000;    //qian wei
                d=wendu%1000/100;//bai wei
                e=wendu%1000%100/10;//shi wei
                f=wendu%1000%100%10;//ge wei
                                                          
                lcdcode_3[0]=c+0x30;
                lcdcode_3[1]=d+0x30;
                lcdcode_3[2]=0x2e;               
                lcdcode_3[3]=e+0x30;
                lcdcode_3[4]=f+0x30;

出0入0汤圆

发表于 2010-10-8 22:05:52 | 显示全部楼层
回复【6楼】A-smith
char 就是一个指针  指向字符串的首元素地址 所以
*char = 'a'
*char+1 = 'b'
*char+2 = 'c'
*char+3 = 'd'
*char+1 跟 *(char+1) 都行
-----------------------------------------------------------------------

解释的好!

出0入0汤圆

发表于 2010-10-8 22:47:52 | 显示全部楼层
u32 n = 'abcd';
u8 x;

x = ((unsigned char *)(&n))[0];
x = ((unsigned char *)(&n))[1];
x = ((unsigned char *)(&n))[2];
x = ((unsigned char *)(&n))[3];

出0入0汤圆

发表于 2010-10-9 10:52:31 | 显示全部楼层
楼上回答有待商榷
1 首先字符串要用双引号""

2 定义指向字符串的指针 要用  char *  不能是32位无符号

3 应该是 n 不是 &n

出0入0汤圆

发表于 2010-10-9 15:40:36 | 显示全部楼层
不是字符串,赋值方式只是模仿楼主的方式而已,所以后面两个"有待商榷"也都不成立.楼主既然这样写,肯定是有原因的,就不去计较了,只要解答他的关心的问题就行了.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-13 19:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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