【转】C语言 字符数组与字符串
2013-12-22 09:36
239 查看
x;"> char str[14]=”I love China”;
不能等价于:
char str[14];
str=”I love China”; (这种不是初始化,而是赋值,而对数组这样赋值是不对的)
4.4、如果定义了一个字符数组,那么它有确定的内存地址;而定义一个字符指针变量时,它并未指向某个确定的字符数据,并且可以多次赋值。
5、字符串处理函数
5.1
char *strcat(char *str1,const char *2 );
char *strcat(char *strDestination,const char *strSource );
功能:函数将字符串str2 连接到str1的末端,并返回指针str1
注:连接前两个字符串的后面都有一个’ /0 ‘,连接时将字符串1后面的 ’ /0 ‘去掉,只在新串最后保留一个 ’ /0 ‘
5.2
char *strcpy(char *str1,const char *2 );
char *strcpy(char *strDestination,const char *strSource );
功能:复制字符串strSource中的字符到字符串strDestination,包括空值结束符。返回值为指针strDestination。
注:1、“字符数组1”必须写成数组名形式,“字符串2”可以是字符数组名,也可以是一个字符串常量
2、复制时连同字符串后面的 ’ /0 ’ 一起复制到数组1中
3、不能用赋值语句直接将一个字符串常量或者字符数组直接赋给一个字符数组(同普通变量数组是一样的),而只能用strcpy函数处理。
4、可以用strcpy函数将字符串2中的前若干个字符复制到字符数组1中去。
补充:
char ch[]="Hello, World!\n";//如果要定义长度的话,则要填15,表示15个字节=(ch长度为14+'\0').否则会报错://Initializer-string for char array is too long
不能等价于:
char str[14];
str=”I love China”; (这种不是初始化,而是赋值,而对数组这样赋值是不对的)
4.4、如果定义了一个字符数组,那么它有确定的内存地址;而定义一个字符指针变量时,它并未指向某个确定的字符数据,并且可以多次赋值。
5、字符串处理函数
5.1
char *strcat(char *str1,const char *2 );
char *strcat(char *strDestination,const char *strSource );
功能:函数将字符串str2 连接到str1的末端,并返回指针str1
注:连接前两个字符串的后面都有一个’ /0 ‘,连接时将字符串1后面的 ’ /0 ‘去掉,只在新串最后保留一个 ’ /0 ‘
5.2
char *strcpy(char *str1,const char *2 );
char *strcpy(char *strDestination,const char *strSource );
功能:复制字符串strSource中的字符到字符串strDestination,包括空值结束符。返回值为指针strDestination。
注:1、“字符数组1”必须写成数组名形式,“字符串2”可以是字符数组名,也可以是一个字符串常量
2、复制时连同字符串后面的 ’ /0 ’ 一起复制到数组1中
3、不能用赋值语句直接将一个字符串常量或者字符数组直接赋给一个字符数组(同普通变量数组是一样的),而只能用strcpy函数处理。
4、可以用strcpy函数将字符串2中的前若干个字符复制到字符数组1中去。
补充:
char ch[]="Hello, World!\n";//如果要定义长度的话,则要填15,表示15个字节=(ch长度为14+'\0').否则会报错://Initializer-string for char array is too long
相关文章推荐
- C++编程规范之31:不要编写依赖于函数参数求值顺序的代码
- 【转】C++ char数组转化为string
- 01_三位数@xfile
- 【转】如何在Mac上撰寫C++程式
- C++ sstream 字符数据流的使用
- Eclipse配置C/C++开发环境 .
- C++ Boost智能指针详解
- C++实验最后自我设计
- C++ 之 this 指针
- C++11: 新手易学,老兵易用
- C++笔记
- C语言总结之文件包含
- C语言使用JSON,cJSON库的使用
- c++ 中关于没有默认构造函数的成员类对象问题
- 谷歌2014年中国区应届毕业生校园招聘B轮机试第一题——数独问题的解法(C++实现)
- 分数的加减法——C语言初学者代码中的常见错误与瑕疵(11)
- C++编程规范之30:避免重载&&,||或,(逗号)
- C++编程规范之29:考虑重载,以避免隐式类型转换
- C++编程规范之28:优先使用++和—的标准形式。优先调用前缀形式
- C++编程规范之27:使用算术操作符和赋值操作符的标准形式