JAVA String 类型的数组如何初始化和赋值_c字符串数组初始化


字符串和一级指针内存模型专题

字符串基本操作

字符数组初始化方法

int


在C语言中使用字符数组来模拟字符串
C语言中的字符串是以’0’结束的字符数组
C语言中的字符串可以分配于栈空间,堆空间或者只读存储区
在C语言中使用字符数组来模拟字符串
C语言中的字符串是以’0’结束的字符数组
C语言中的字符串可以分配于栈空间,堆空间或者只读存储区


int


strlen()求字符串的长度,注意字符串的长度不包含0
sizeof(类型)字符串类型,的大小,包括0;
02Sizeof与strlen的区别

数组法和指针法操作字符串

数组法,下标法
字符数组名,是个指针,是个常量指针;
字符数组名,代表字符数组首元素的地址,不代表整个数组的。


//字符串操作方法 数组下标法 指针法


推演过程为:i变0+I, 去[]号加*号
其实本质:指针*p间接寻址,操作内存;
[] 编译器为我们做了*p操作而已


#define  _CRT_SECURE_NO_WARNINGS


字符串做函数参数

指针和数组的巨大区别 char *p = “abcdefg”; Char *buf = “abcdefg”; 一维字符串内存模型:两种


void


库函数api


int


字符串相关一级指针内存模型


void


JAVA String 类型的数组如何初始化和赋值_c语言求数组元素个数_02


JAVA String 类型的数组如何初始化和赋值_c语言求数组元素个数_03


项目开发字符串模型

两头堵模型


#define  _CRT_SECURE_NO_WARNINGS


#define  _CRT_SECURE_NO_WARNINGS


字符串反转模型


JAVA String 类型的数组如何初始化和赋值_c字符串数组初始化_04


#define  _CRT_SECURE_NO_WARNINGS


一级指针(char *)易错模型分析

char *(字符串)做函数参数出错模型分析

建立一个思想:是主调函数分配内存,还是被调用函数分配内存;


void


越界


char


不断修改指针变量的值

以下代码打印输出全部为空!


void


你向外面传递什么


1


//char *p = "abcd11111abcd2222abcdqqqqq"; //字符串中"abcd"出现的次数。


重复的错误何时休


#include


#define  _CRT_SECURE_NO_WARNINGS


const专题

1、 const基础知识(用法、含义、好处、扩展)


int


int func1(const )
初级理解:const是定义常量==》const意味着只读
含义:
第一个第二个意思一样 代表一个常整形数
第三个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
第四个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
第五个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
Const好处
合理的利用const,
指针做函数参数,可以有效的提高代码可读性,减少bug;
清楚的分清参数的输入和输出特性
结论:
指针变量和它所指向的内存空间变量,是两个不同的概念。。。。。。
看const 是放在*的左边还是右边 看const是修饰指针变量,还是修饰所指向的内存空变量

考试强化训练

1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。
要求1:请自己定义一个接口(函数),并实现功能;
要求2:编写测试用例。
int trimSpace(char *inbuf, char *outbuf);


#define  _CRT_SECURE_NO_WARNINGS


2、有一个字符串”1a2b3d4z”,;
要求写一个函数实现如下功能,
功能1:把偶数位字符挑选出来,组成一个字符串1。valude;
功能2:把奇数位字符挑选出来,组成一个字符串2,valude;
功能3:把字符串1和字符串2,通过函数参数,传送给main,并打印。
功能4:主函数能测试通过。
int getStr1Str2(char *souce, char *buf1, char *buf2);


#define  _CRT_SECURE_NO_WARNINGS


键值对(”key = valude”)字符串,在开发中经常使用;
要求1:请自己定义一个接口,实现根据key获取valude;
要求2:编写测试用例。
要求3:键值对中间可能有n多空格,请去除空格
注意:键值对字符串格式可能如下:

“key1 = valude1”   
“key2 = valude2   
“key3 = valude3”   
“key4 = valude4”   
“key5 = “   
“key6 =“   
“key7 = “   
int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen);   
int main()   
{   
 getKeyByValude(“key1 = valude1”, ” key1”, buf, &len);   
}