char数组

*****************************************************************
char 类型的数组(c语言中是没有字符串的)
char name[20]是数组还是字符串?
char name[20]是 char 数组

赋值方式1:
char name[20]="abcd_1234";(或者char name[]="abcd_1234";)(这样子赋值有\0的存在)
char time[9] = {0, 0, 0, 1, 0, 0, 1, 1, 0};(这样子没有\0的存在)
赋值方式2:
char name[20];
strcpy(name,"abcd_1234");
赋值方式3:
char name[20];
for (i=0;i<4;i++) name[i] = ‘a‘ + i;
name[4]=‘_‘;
for (i=5;i<8;i++) name[i] = ‘1‘ + i -5;
语句:
printf("%s",name);
*****************************************************************
int 类型的数组

int a[3];
赋值方式1: int a[3]={4,5,6};
赋值方式2: int a[3];
for(i=0;i<3;i++)
{
a[i]=‘a‘+i;
}
*****************************************************************
char *类型的数组
char *time[9] = {0, 0, 0, 1, 0, 0, 1, 1, 0};这样子赋值就错了。地址不能给,只能分配获取。
或者用strcpy函数赋值。
strtok 函数必须用char *p[4];去接,而且注意加数值注意加1;
char s[] = "ledon 1 3";
char *p[4];
int i;

p[0] = strtok(s, " ");
for(i=1; p[i-1]!=NULL; i++)
{
p[i] = strtok(NULL, " ");
}

for(i=0; p[i]!=NULL; i++)
{
printf("%s\n", p[i]);
}
///////此处的每一个p[i]都代表一个字符串的首地址。
char time[9];time只能代表本字符串的首地址(time[9], 前边的char代表里面的数据类型,如果是char *代表是数据是地址,字符串的地址),
char *time[9]; time[i]代表每一个字符串的地址。
char name[20]="abcd_1234";
char name[]="abcd_1234";除了这样赋值可以不给出大小外,其他方式必须给出大小,定义数组必须给出大小.
*********************************************************************************************************
char time[9] = {0, 0, 0, 1, 0, 0, 1, 1, 0};(这样子没有\0的存在)
rtc_set(time);
void rtc_init(int *t)
{
RTC.RTCCON = 0x1;
RTC.BCDYEAR = t[0];
RTC.BCDMON = t[1];
RTC.BCDDATE = t[2];
RTC.BCDDAY = t[3];
RTC.BCDHOUR = t[4];
RTC.BCDMIN = t[5];
RTC.BCDSEC = t[6];
RTC.RTCCON = 0x0;
}

时间: 2024-10-01 02:28:10

char数组的相关文章

C/C++ string和char数组对比

string是c++特有的,使用时需添加头文件#include<string> (一)#include<string.h>和#include<cstring>以及#include<string.h>区别 <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新

char数组中除去某个元素

1 /* 2 本程序说明: 3 4 char数组中除去某个元素(其实就是strcpy源码的变形) 5 6 */ 7 #include <iostream> 8 #include <cassert> 9 #include <cstring> 10 using namespace std; 11 12 char * remove_char(char* src, int length, char c){ 13 char *dst=src; 14 char *res=dst;

个人理解的int数组和char数组

char数组中不论是一维还是二维的,在程序执行时每一块的分离依据都是以提供的起始地址到'\0'为一个处理的字符串.所以关于char[]的函数都是只提供相应起始地址作为形参就可以. char[]互相交换内容时不是用的=号,而是使用strcpy(a,b),其中a为"被赋值的"char[]的起始地址,b为"要赋的值"的char[]的起始地址.要修改其中的某个字符则可以使用=号 另外例如char* a="abcd"和char b[5]="abc

关于将16进制的数据存放在char数组中的问题的解决方案

首先说明一点,题目提到的问题我目前并没有解决,我在此处发表随笔就是希望看到的同学们有会的帮我解决一下. 现在来说一下我的需求: 1.定义一个数组:unsigned char cmd[6] = {0xF0,0x11,0x01,0x65,0x87,0xA9}; 2.然后将这个数组的数据写入串口中,我在写的时候发现了cmd中的数据出现了乱码的现象,于是我采用下面一种方法: 3.使用sprintf函数,于是有了下面的代码: 1 char pBuf[9]; 2 sprintf(pBuf,"%x %x %x

delphi char数组、string和Pchar的相互转换

因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理. 1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi'; p:=PChar(s); ShowMessage(p); p1:=StrAlloc(Len

Java判断回文语句的程序(可变参数,String转化为char数组)

static void Huiwen(char... cs){     //char... cs  支持可变参数格式为 //(类型名... 变量名)--形参列表,相当于建立了一个长度可变的动态数组,系统根据用户需求来确定数组的长度 int b_ool=1; for(int i=0;i<cs.length/2;i++)    //length为这个可变数组的长度,注意此时长度为数组下表加1,通过cs.length-i-1可知 if(cs[i]!=cs[cs.length-i-1   // 判断 ]

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar,根据转换链可知 Dest := PAnsiChar(AnsiString(Source)),同理PAnsiChar转PChar为 Dest:= PChar(String(Source)) 如果转换结果最终为string,可以无需String转换,如Array[0..n] of AnsiChar转s

char数组构造string

这是一个老掉牙的话题, 但是你稍加不注意就会出错. 最近在写一个可以跨平台打印的程序,就遇到这个问题,故记之.共勉! 用 char 数组初始化string #include <string> using std::string; using std::cout; int main(int argc, const char * argv[]) { char chArray[] = {'m', 'a', 'r', 'k'}; cout << "array size = &qu

CString转char数组

首先修改Unicode字符集为多字节字符集,如果不修改字符集使用下面的方法拷贝字符串会出现数据错误,选择项目->项目属 性(或直接按alt+F7)->配置属性,在右边找到"字符集",将"使用Unicode字符集"改为"使用多字节字符集".保存之后需要重新生成解决方案.用strcpy_s(char*, CString)将CString转化为char数组,因为用memcpy也会出现乱码尾巴. 应用举例:将获得的数字字符串转化为float性

CHAR数组转成STRING:C++

有些时候,键入了CHAR数组却不会知道到底有多长,是不是很差评呢?但是,转成STRING就可以啦QWQ 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 7 char a[200]; 8 9 string string_char(char* a) 10 { 11 return a; 12 }