首页 > 编程知识 正文

数组c语言例子,整型变量和字符变量是否无条件等价

时间:2023-05-05 01:58:05 阅读:12439 作者:2522

c语言字符数组和字符串的使用详细信息. doc

用MSP430F149单片机开发GSM模块变压器报警系统学习笔记本

2015年1月29日18:15:20

目录:

GSM模块总是向串行端口发送信息

键中断无法结束的问题

闪存写入问题

字符数组和字符串的连接问题。

字符数组和字符串参考

1、GSM模块总是向串行端口发送信息

发送的数据如下图所示。

问题的原因是GSM模块频繁重新启动,部分原因是电脑USB接口电压不稳定,GSM模块工作不足,导致频繁重新启动。 这需要后期注意。

2、键中断不能结束的问题

按钮是普通的中断,但是有进入中断也不能结束的问题。 这个问题在于延迟函数。 我选择的延迟函数正在利用计时器。 无法结束中断,因为此函数可能在中断函数中影响了中断标志。

解决方法是使用普通的延迟函数,不用计时器就可以了。

3、闪存写入问题

在写入Flash中,使用的是别人写的库函数。 这个库函数有问题。 问题是,每次写1位数据时,都会相应地清除前面的数据。

例如,在F0x1000的位置书写文字“a”,在F0X1001的位置书写文字“b”,在F0X1002的位置书写文字“c”。 结果是“c”。 以前的所有数据都变成了0X00,被清空了。 让我们看一下步骤:

(voidflash_writeb(uchar*address,uchar data8) ) ) ) ) ) ) )。

{

//FCTL1=0xA5000x0002; //允许清除

FCTL3=0xA500; //解除锁定

//*地址=0; //开始清除

FCTL1=0xA5000x0040; //允许写作

*地址=data 8; //写入数据

FCTL1=0xA500;

FCTL3=0xA5000x0010; //锁定

}

这是因为擦除命令已打开,擦除命令已清除了所有原始数据。 本来,这个清除指令应该只是清除一个地方的数据,但是其他地方的数据都被清除了。 因此,通过修改原始函数并禁止清除原始函数的内容,在将解决了其他问题的数据写入新数据时会被清除。

4、字符数组与字符串的拼接问题。

首先,怎么连接字符串?

我使用的方法是(包括string.h头文件) ) )。

uchar test1[11];

Uchar *set=”SET”;

Uchar *read=”READ”;

strcpy(test1,set );

strcat(test1、read );

第一条语句将set字符串的内容复制到test1。 然后,使用第二个命令将第二个字符连接到第一个字符串。 连接时,会自动删除第一个字符串末尾的“ 0”,并在重新连接的字符串后面添加“ 0”。

我用字符串数组替换set部分时,即uchar set[11]; 时,用同样的方法连接字符串结果相似,但不能使用结尾识别字符串发送函数“ 0”的函数。

因为字符数组的默认值不包含“ 0”。 字符数组u charset [3]={‘s’、‘e’、‘t’}; 定义和赋值方法,以及uchar set[3]; 在这个定义方式中,实际的有效数据是3,字符排列的长度也是3。 此字符数组的末尾没有“ 0”。 因此,发送函数发生了错误。

我应该怎么定义字符数组? 必须将“ 0”添加到字符数组的最后一位,以防止函数出错。 可以定义如下:

uchar set[4]=' ';

我们给了字符数组很多一位数的空间。 此空间用于存储字符数组为“”的字符。 我们定义的时候,给字符数组分配了空字符串。 这样,所有字符串的末尾都必须为“”。 因此,我们的字符数组set[3]的数据必须为“”。 除非用后处理函数修改此位的数据,否则我们得到的最新字符数组末尾有“”

当然,在拼接的时候,需要再次强制切换。 如下所示。

strcpy () char* ) at_phone,) const char * ) at_phone1);

strcat(char* ) at_phone,) const char * (phone buff2);

strcat(char* ) at_phone,) const char * ) at_phone3);

URT_putstr(0,) char * (at _ phone );

以下是字符数组和字符串的参考资料。

有关使用c语言字符数组和字符串的详细信息

本文详细分析并介绍了c语言中字符数组和字符串的使用,有需要的朋友可以参考

1、字符数组的定义和初始化字符数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。