字符,字符串,以及动态申请数组
2014-03-16 18:03
204 查看
1.字符: char a='s'; 或者
char* a='s';
2.字符串:C语言中以字符数组定义字符数组
char a[10]="jiayou";
char *a="jiayou";
而下面的赋值方式是完全错误的:
char a[10];
a[10]="jiayou";
此时,赋值应该用strcopy函数
同样的,数组赋值;
int a[10]={0};是正确的
而
int a[10];
a[10]={0};是错误的
将上面的总结一下:
(1)字符串初始化:
①char s[]="jiayou";
若定义时没有初始化,赋值时不能再将字符串赋给它,只能一个一个赋值
②char* s;
可以在定义时初始化,也可以在定义后赋字符串,但是不能一个一个赋值
③字符不能相互赋值,若要赋值或判断大小,要么使用函数,要么将之赋给一个整形变量,即将其转换为整形进行比较,比较之后再将整形变量赋回去
3. 字符串数组:以二维字符数组表示字符串数组
char a[4][5]={"jiayou","china"};
4.动态申请二维数组以及释放:
这个问题一直不太清楚,也没有静下心去总结一下,今天来总结一下new 和 delete
(1)一行一行申请
分析:①int **p 定义p是一个指针的指针,二维静态数组中数组名也是这个含义
②new 申请空间时,返回的是地址
③p[i]是列的名,相当于列的起始地址
(2)
(3)一次申请二维
(4)申请以为将之转换为二维
char* a='s';
2.字符串:C语言中以字符数组定义字符数组
char a[10]="jiayou";
char *a="jiayou";
而下面的赋值方式是完全错误的:
char a[10];
a[10]="jiayou";
此时,赋值应该用strcopy函数
同样的,数组赋值;
int a[10]={0};是正确的
而
int a[10];
a[10]={0};是错误的
将上面的总结一下:
(1)字符串初始化:
①char s[]="jiayou";
若定义时没有初始化,赋值时不能再将字符串赋给它,只能一个一个赋值
②char* s;
可以在定义时初始化,也可以在定义后赋字符串,但是不能一个一个赋值
③字符不能相互赋值,若要赋值或判断大小,要么使用函数,要么将之赋给一个整形变量,即将其转换为整形进行比较,比较之后再将整形变量赋回去
3. 字符串数组:以二维字符数组表示字符串数组
char a[4][5]={"jiayou","china"};
4.动态申请二维数组以及释放:
这个问题一直不太清楚,也没有静下心去总结一下,今天来总结一下new 和 delete
(1)一行一行申请
int **p; p=new int* ; for(int i=0;i<N;i++) { p[i]=new int [M]; } for(int i=0;i<N;i++) { delete []p[i]; } delete []p;
分析:①int **p 定义p是一个指针的指针,二维静态数组中数组名也是这个含义
②new 申请空间时,返回的是地址
③p[i]是列的名,相当于列的起始地址
(2)
int *p[M]; for(int i=0;i<M;i++) { a[i]=new int ; } for(int i=0;i<M;i++) { delete [] a[i]; }
(3)一次申请二维
int (*p)[3]=new int [4][3]; delete []p;
(4)申请以为将之转换为二维
const int MAXCOL = 3; int nRow=9; int *pp_arr = new int[nRow * MAXCOL]; int (*p)[MAXCOL] = (int(*)[MAXCOL])pp_arr; delete[] pp_arr;
相关文章推荐
- 根据服务器端返回的字符数组,展示字符串标签,需要涉及字符串长度处理以及字符串换行,字符串不够一行自动跳到第二行的逻辑
- IOS字符串按特定字符拆分成数组和拼接以及一些基本操作
- 字符串匹配问题——求给定字符串的next数组以及KMP算法实现
- 字符串截取以及字符数组和字符指针的区别
- 动态规划求数组中和最大字串的值 以及 字符串的循环移位(要求空间复杂度O(1),时间复杂度O(n))
- sizeof("string") 以及字符数组使用字符串初始化
- 创建动态数组以及sort函数的用法 -- 字符串的漂亮度
- sdut oj2124 串结构练习——字符串连接(动态开辟字符数组)
- String类以及如何将字符串转化为数组,将字符和各种数值返回字符串格式,Integer和int 区别,StringBuilder和StringBuffer区别
- 编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格,和其他字符的个数,在主函数中输入字符串以及输出上述统计的结果。再考虑将算的的结果放在一个数组中
- 函数、数组区别以及函数注意点和回调函数,以及删除字符串中出现次数最少的字符的程序
- 字符串的存储方式,以及sizeof()(字符数组,字符指针,Sizeof总结)
- 字符数组的定义、初始化及引用以及一些常用的字符串处理函数
- 有关数组 & 动态数组,输出数组中最长字符以及最短字符,若最长最短不止一个,都输出
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- HW—指定字符替换Java(replace)---动态和静态定义字符串数组;
- 九度oj+原始一个字符串左右交换字符最少步数变成含有2012字串+bfs及字符串和整型转换以及没有标记visit数组大小,只能用stl中的vecotr,实际上set更好。有count函数
- 字符与ascii码的相互转换以及字符串和字符数组的相互转换
- 字符串和字符数组的区别以及sizeof和strlen的区别
- 动态可变字符数组的实现, 以及用于实现读取文件中的完整一行字符的功能