字符串问题及关于字符串的函数
2014-12-09 23:26
232 查看
字符串问题及关于字符串的函数
1,char* strcpy(char* dest, char* src);把src指向的以NULL结束的字符串复制到dest所指的数组中。函数返回指向dest指针。
注:1,接收字符串的数组或指针所指的内存区域一定要大于被复制的字符串长度, 否则系统可能由于字符长度不够而被恶意修改。
2,dest和src所指向的内存区域不可以重叠。
3,函数返回指向dest的指针。
4,复制时会连同字符串结束符'\0'一同复制到目的数组dest中。
5,可以使用参数指定复制字符串长度:strcpy(str,"People need not to work on Sunday!",10);
将这条字符串的前10个字符复制到str中。但在有些编译器中并不支持这种方式。
6,在工程中,通常以自定义的strcpy函数。
7,strcpy()是覆盖式的复制,是从起始位置开始覆盖,如果原来字符串够长,只会从头开始部分覆盖。
2,char* strcat(char* dest,char* src);字符串连接函数,其使用方法和strcpt()类似。
3,int* strcmp(char* str1,char* str2);功能:对两字符串比较,根据两者大小返回不同的数值。
注:a,从左到右的顺序逐个字符比较,如下:
当str1>str2时,函数返回大于零的数,通常返回值为1
当str1<str2时,函数返回小于零的数,通常返回值为-1
当str1=str2时,函数返回0
b,当有一个字符比较出来时,其它的就不作比较了
4,int strlen(char* str);功能:计算字符串长度,不计算结束字符'\0',返回提字符串的实际长度
5,若dest为NULL,使用strcat函数时会产生什么错误?
如果这样,那么程序将会崩溃,因此调用函数之前务必检查dest指针或数组是否为空,若为空,则禁止调用strcat函数。
6,若src赋为NULL,调用strcat是否出错?
会,C语言的strcat对输入的两个指针参数都进行了入参的检测,因此,src为空时的情况同上,都会出现崩溃的情况。
7,若str中的字符串长度大于dest定义的长度,调用strcat时,是否会出现错误?
不会,strcat函数不检查src和dest的长度匹配,但如果那样的话,会使内存读写越界,从而发生严重的内存泄露。
8,字符串比较函数strcmp是否允许两个输入参数都为NULL?
不允许,和所有的字符串处理函数一样,strcmp函数不允许输入参数为NULL,若出现这种情况,程序将出现崩溃
1,char* strcpy(char* dest, char* src);把src指向的以NULL结束的字符串复制到dest所指的数组中。函数返回指向dest指针。
注:1,接收字符串的数组或指针所指的内存区域一定要大于被复制的字符串长度, 否则系统可能由于字符长度不够而被恶意修改。
2,dest和src所指向的内存区域不可以重叠。
3,函数返回指向dest的指针。
4,复制时会连同字符串结束符'\0'一同复制到目的数组dest中。
5,可以使用参数指定复制字符串长度:strcpy(str,"People need not to work on Sunday!",10);
将这条字符串的前10个字符复制到str中。但在有些编译器中并不支持这种方式。
6,在工程中,通常以自定义的strcpy函数。
7,strcpy()是覆盖式的复制,是从起始位置开始覆盖,如果原来字符串够长,只会从头开始部分覆盖。
2,char* strcat(char* dest,char* src);字符串连接函数,其使用方法和strcpt()类似。
3,int* strcmp(char* str1,char* str2);功能:对两字符串比较,根据两者大小返回不同的数值。
注:a,从左到右的顺序逐个字符比较,如下:
当str1>str2时,函数返回大于零的数,通常返回值为1
当str1<str2时,函数返回小于零的数,通常返回值为-1
当str1=str2时,函数返回0
b,当有一个字符比较出来时,其它的就不作比较了
4,int strlen(char* str);功能:计算字符串长度,不计算结束字符'\0',返回提字符串的实际长度
5,若dest为NULL,使用strcat函数时会产生什么错误?
如果这样,那么程序将会崩溃,因此调用函数之前务必检查dest指针或数组是否为空,若为空,则禁止调用strcat函数。
6,若src赋为NULL,调用strcat是否出错?
会,C语言的strcat对输入的两个指针参数都进行了入参的检测,因此,src为空时的情况同上,都会出现崩溃的情况。
7,若str中的字符串长度大于dest定义的长度,调用strcat时,是否会出现错误?
不会,strcat函数不检查src和dest的长度匹配,但如果那样的话,会使内存读写越界,从而发生严重的内存泄露。
8,字符串比较函数strcmp是否允许两个输入参数都为NULL?
不允许,和所有的字符串处理函数一样,strcmp函数不允许输入参数为NULL,若出现这种情况,程序将出现崩溃
相关文章推荐
- 关于子函数返回字符串的问题解决办法
- 关于《程序员编程宝典》中编写一个函数,作用是把一个char组成的字符串循环右移n位的问题
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- 关于字符串比较函数strcmp返回值的问题
- 关于js函数传入中文字符串参数的取值问题
- 关于子函数返回字符串问题集锦
- 关于函数返回字符串常量的问题
- 关于字符串比较函数strcmp返回值的问题
- Oracle函数返回超长字符串问题
- 关于JSP中字符串输出问题
- VC中一个关于宏的使用问题,字符串之间转换,宽字符与普通字符
- 关于连接字符串中IMEX参数的一个问题
- C++笔试题 关于函数析构函数未调用的问题
- 关于C#使用外部DLL函数上的char*的问题
- 关于VC开发中的函数调用问题
- ads中关于函数指针转换的很奇怪的问题
- [毕业论文] 关于“将截断字符串或二进制数据”的错误问题
- 关于VC6调试程序时显示Unicode字符串不全的问题
- 关于fopen函数中路径名使用字符串的一点看法
- 关于网友说的gridview不能格式化字符串的问题的解决办法