时间:2021-05-20
按《C和指针》中所说,那些常用的字符串函数都是“不是限制的”,就是说它们只能通过寻找字符串末尾的NULL来判断字符串的长度。
strlen函数用于求解字符串长度,其返回类型为unsigned int(即size_t)。strlen函数从起点开始,往后计数,遇到‘\0'停止。
值得注意的是:strlen函数的返回类型。看如下代码:
输出 : 大于。不必惊奇,函数的size_t(-3)是一个正数。
strcpy函数是字符串拷贝函数
函数原型为:
需要注意:目标字符串是要可以更改的,空间要大,足够存放拷贝的源字符串。
拷贝过程中,函数将源字符串的‘\0'一起拷贝到目标中。
#include<string>#include<iostream>using namespace std;int main(){ char arr[20] = "abcdefgh******"; char* p = "hello world"; strcpy(arr, p); cout << arr << endl; return 0;}strcmp函数为字符串比较函数。比较的不是字符串的长度,而是对应字符的ASCII值。
返回类型为:
#include<string>#include<iostream>using namespace std;int main(){ char arr[] = "abcde"; char p[] = "abde"; cout << strcmp(arr,p) << endl; return 0;}strcat函数为字符串追加函数。函数原型:
将源字符串追加到目标字符串上。
int main(){ char arr[20] = "abcde "; char p[] = "hello"; cout << strcat(arr, p) << endl; return 0;}strstr为字符串查找函数。函数原型为:
在目标字符串中查找子字符串,找的则返回指向子字符串的指针,否则返回空指针。
int main(){ char arr[] = "hello, how are you ?"; char p[] = "are"; cout << strstr(arr, p) << endl; return 0;}结果为:are you ?
strtok函数为字符串分隔函数。函数原型为:
strDelimit为字符串,定义了分隔字符的集合。函数执行是遇到分割字符时,将它改为‘\0',范围一个指向这个标记的指针。注意:strtok函数执行时修改了字符串的内容。
int main(){ char str[] = "hello,how are you ?"; char * p; p = strtok(str, ",?"); while (p != NULL) { printf("%s\n", p); p = strtok(NULL, ",?"); } return 0;}strerror函数的作用:返回错误码对应的信息。函数原型为
使用时要包含#include<errno.h>
这些“不受限制的”的字符串函数,在执行过程中,函数本身要寻找字符串结尾的'\0'来作为结束执行标志。如果找不到'\0',这函数执行可能就会越界,得不到正确的结果。
到此这篇关于C语言中“不受限制”的字符串函数的文章就介绍到这了,更多相关C语言不受限制字符串函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、要点(1)在C语言中没有字符串,只有字符,在python中的字符串hello,在C语言中是以字符数组在内存存放['h','e','l','l','o'],如
c语言中strcpy是一个C语言的标准库函数,是stringcopy(字符串复制)的缩写。strcpy函数的作用是把含有\0结束符的字符串复制到另一个地址空间,
c语言中strcpy是一个C语言的标准库函数,是stringcopy(字符串复制)的缩写。strcpy函数的作用是把含有\0结束符的字符串复制到另一个地址空间,
C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换。
string在c语言中的意思是System.Char对象的有序集合,用于表示字符串。String就是C等编程语言中的字符串,用双引号引起来的几个字符。 c语言