输入两个字符串s1和s2,然后将s2接在s1后面,输出连接后的字符串,不可以利用库函数strcat。
1个回答
展开全部
#include <iostream>
using namespace std;
char * myStrcat(char* destStr,const char* srcStr) //方法一,数组操作
{
int srcLen = 0;
int destLen = 0;
while(srcStr[srcLen]!='\0')
{
srcLen++;
}
while(destStr[destLen]!='\0')
{
destLen++;
}
for(int i = 0 ; i<srcLen ; i++)
{
destStr[destLen++] = srcStr[i];
}
destStr[destLen] = '\0';
return destStr;
}
char* libStrcat(char * dst,const char* src) //方法二,指针操作(微软strcat的实现源代码)
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}
void main()
{
//测试
char a[10];
strcpy(a,"abc");
char * b = "def";
cout<<a<<endl; //没连接前
char * d = myStrcat(a,b);
cout<<d<<endl; //连接b后
char * c = "gh";
libStrcat(a,c); //连接c后
cout<<d<<endl;
}
//希望以后能多动手,多动脑,才能不断进步哦!
using namespace std;
char * myStrcat(char* destStr,const char* srcStr) //方法一,数组操作
{
int srcLen = 0;
int destLen = 0;
while(srcStr[srcLen]!='\0')
{
srcLen++;
}
while(destStr[destLen]!='\0')
{
destLen++;
}
for(int i = 0 ; i<srcLen ; i++)
{
destStr[destLen++] = srcStr[i];
}
destStr[destLen] = '\0';
return destStr;
}
char* libStrcat(char * dst,const char* src) //方法二,指针操作(微软strcat的实现源代码)
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}
void main()
{
//测试
char a[10];
strcpy(a,"abc");
char * b = "def";
cout<<a<<endl; //没连接前
char * d = myStrcat(a,b);
cout<<d<<endl; //连接b后
char * c = "gh";
libStrcat(a,c); //连接c后
cout<<d<<endl;
}
//希望以后能多动手,多动脑,才能不断进步哦!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询