c++字符数组和字符指针区别以及str***函数

C风格字符串都是以’\0’结尾的。所以如果拷贝一个字符串,请确保计算的长度已经考虑了这个结尾符号。
另外C风格的字符串是在内存上动态申请数组存储的,所有的保护措施需要申请者自己维护,new过之后一定要delete。

字符指针

//先在文字常量区为"abcde"常量分配6B,接着在栈里为指针pStr分配4B,并接收"abcd"字串的首地址

char* pStr = “abcde”;
pStr[0]='h';    //error
int n1= sizeof(pStr ); // n1 值: 4
int n2 = strlen(pStr ); // n2 值:5

字符数组

//在栈区分配连续的6B,内容为’a’,‘b’,‘c’,‘d’,‘e’,’\0’并把首地址标记为arr

char arr[] = " abcde ";
arr[0]='h';     //合法
int n3= sizeof(arr);  //n3值:6
int n4= strlen(arr);   //n4值:5

总结

字符指针是指向常量区字符串的指针,其值不能改变,但可以改变所指对象,是一个常量指针。字符数组是将字符放在数组内,可以改变其内容。

strcpy 函数

原型:char * strcpy ( char * destination, const char * source )
功能:将字符串source拷贝到字符串destination中
原型:char * strncpy ( char * destination, const char * source, size_t num );
功能:将字符串source中前num个字符拷贝到字符串destination中

strcat 函数

原型:char * strcat ( char * destination, const char * source );
功能:将字符串source接到字符串destination的后面
原型:char * strncat ( char * destination, const char * source, size_t num );
功能:将字符串source的前num个字符接到字符串destination的后面

strlen 函数

原型:size_t strlen ( const char * str );
功能:统计字符串 str 中字符的个数

strchr(p, c) // 在字符串中查找指定字符
strstr(p, p1) // 查找字符串
strpbrk(p, p1) // 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
strspn(p, p1) // 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值