赞
踩
一、strcat()与strncat()
strcat():strcat(dest,src); strcat把src所指向的字符添加到dest结尾处(覆盖原dest结尾处的'\0'),并添加新的'\0'。
说明:src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。
strncat():strncat(dest,src,n); strncat把速溶茶所指向的字符的前n个字符添加到dest结尾处(覆盖原dest结尾处的'\0'),并添加新的'\0'。
说明:src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的前n个字符串,返回指向dest的指针。
1.具体实例:
- #include<iostream>
- #include<string>
-
- using namespace std;
-
- int main()
- {
- //以下strcat
- char a[30]="lanzhihui is ";
-
- char b[]="a good boy!";
-
- strcat(a,b); //如果数组a的剩余存储空间不足以存放数组b,则出错。
- //数组a中字符串的成为连接后的字符串
-
- cout<<"strcat(a,b):"<<a<<endl;
-
-
- //以下strncat
- char c[30]="Hello ";
- char d[]="world!";
- strncat(c,d,sizeof(d)-1);
-
- cout<<"strncat(c,d):"<<c<<endl;
-
- strncat(c,d,30); //只要是c中空间足够大,可以存储d中的字符串,n为任何值都可以(实际上连接是按照d数组中的字符个数计算的)
-
- cout<<"strncat(c,d):"<<c<<endl;
-
- system("pause");
- return 0;
- }
2.以'\0'结束读取、连接
- #include<iostream>
- #include<string>
-
- using namespace std;
-
- int main()
- {
- char a[100]="lanzhi\0hui is ";
-
- char b[]="a good \0boy!";
-
- strcat(a,b);//连接以'\0'结束,即数组a以'\0'停止,数组b以'\0'停止
-
- cout<<a<<endl;
-
- system("pause");
- return 0;
- }
二、strcat()与strncat()的具体实现
- #include<iostream>
- #include<assert.h>
-
- using namespace std;
-
- char *strcat_m(char *dest,const char *str)
- {
- assert((dest!=NULL)&&(str!=NULL));
- char *cp=dest;
-
- while(*cp!='\0') ++cp;
-
- while((*cp++=*str++)!='\0')
- {
- //
- }
-
- return dest;
- }
-
- char *strncat_m(char *dest,const char *str,int n)
- {
- assert((dest!=NULL)&&(str!=NULL));
- char *cp=dest;
-
- while(*cp!='\0') ++cp;
-
- while(n&&(*cp++=*str++)!='\0')
- {
- --n;
- }
-
- return dest;
- }
-
- int main()
- {
- //以下strcat
- char a[30]="lanzhihui is ";
-
- char b[]="a good boy!";
-
- strcat_m(a,b);
-
- cout<<"strcat(a,b):"<<a<<endl;
-
-
- //以下strncat
- char c[30]="Hello ";
- char d[]="world!";
- strncat_m(c,d,sizeof(d)-1);
-
- cout<<"strncat(c,d):"<<c<<endl;
-
- strncat_m(c,d,30);
-
- cout<<"strncat(c,d):"<<c<<endl;
-
- system("pause");
- return 0;
- }
与调用原函数结果一样,strcat_m()与strncat_m()函数功能实现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。