c++中 写一个两个字符串相连接的函数:char *strcat(char *s1,const c...
发布网友
发布时间:2024-09-06 11:40
我来回答
共4个回答
热心网友
时间:2024-09-28 01:38
这个问题细考虑一下还是蛮复杂的,如果在主程序中给定s1是一个指针的话,即char*s1="good";,那么s1的大小是给定的,如果想通过strcat将两个字符串连接的结果放到s1中的话,必须用链表来做,除非你主函数中给定的s1是一个字符数组,而且数组大小要足够大,能够容的下s1和s2,那么就很容易将s1改变了。如果你不是非要把s1和s2合并到s1中去的话,我们可以引入第三个字符指针s3,示例程序如下:
#include <iostream>
using namespace std;
int strcat(char *s1,char*s2)
{
int i,i1,i2;
i1=strlen(s1);
i2=strlen(s2);
char *s3=new char[i1+i2+1];
while(*s1!='\0')
*(s3++)=*(s1++);
while(*s2!='\0')
*(s3++)=*(s2++);
*(s3++)='\0';
for(i=0;i<i1+i2+1;i++)
s3--;
cout<<"合并后的数组为:"<<s3<<endl;
cout<<"合并后数组大小为:"<<strlen(s3)<<endl;
return strlen(s3);
}
int main()
{
int i;
char *s1="good";
char *s2="day";
i=strcat(s1,s2);
return 0;
}
另外,站长团上有产品团购,便宜有保证
热心网友
时间:2024-09-28 01:36
char *strcat(char *s1,const char *s2)
{
char *p1=s1,*p2=(char *)s2;
while (*p1) ++p1;
while (*p2) *p1++=*p2++;
*p1=0;
return s1;
}
热心网友
时间:2024-09-28 01:37
#include "stdio.h"
char * strcat(char *s1,char *s2)
{
int i=0,j=0;
char *p=s1,*q=s2;
while(*p++)i++;
while(*q++)s1[i++]=s2[j++];
return s1;
}
void main()
{
char a[20]="abc";
char b[10]="defg";
printf("%s\n",strcat(a,b));
}
热心网友
时间:2024-09-28 01:40
#include <iostream.h>
char *strcat(char *s1, const char *s2)
{
char *p;
p = s1;
while(*p)
p++;
while(*p++ = *s2++);
return s1;
}
int main()
{
char s1[10] = "abc";
char s2[4] = "123";
char *p = strcat(s1, s2);
cout << p << endl;
return 0;
}
热心网友
时间:2024-09-28 01:32
这个问题细考虑一下还是蛮复杂的,如果在主程序中给定s1是一个指针的话,即char*s1="good";,那么s1的大小是给定的,如果想通过strcat将两个字符串连接的结果放到s1中的话,必须用链表来做,除非你主函数中给定的s1是一个字符数组,而且数组大小要足够大,能够容的下s1和s2,那么就很容易将s1改变了。如果你不是非要把s1和s2合并到s1中去的话,我们可以引入第三个字符指针s3,示例程序如下:
#include <iostream>
using namespace std;
int strcat(char *s1,char*s2)
{
int i,i1,i2;
i1=strlen(s1);
i2=strlen(s2);
char *s3=new char[i1+i2+1];
while(*s1!='\0')
*(s3++)=*(s1++);
while(*s2!='\0')
*(s3++)=*(s2++);
*(s3++)='\0';
for(i=0;i<i1+i2+1;i++)
s3--;
cout<<"合并后的数组为:"<<s3<<endl;
cout<<"合并后数组大小为:"<<strlen(s3)<<endl;
return strlen(s3);
}
int main()
{
int i;
char *s1="good";
char *s2="day";
i=strcat(s1,s2);
return 0;
}
另外,站长团上有产品团购,便宜有保证
热心网友
时间:2024-09-28 01:37
#include "stdio.h"
char * strcat(char *s1,char *s2)
{
int i=0,j=0;
char *p=s1,*q=s2;
while(*p++)i++;
while(*q++)s1[i++]=s2[j++];
return s1;
}
void main()
{
char a[20]="abc";
char b[10]="defg";
printf("%s\n",strcat(a,b));
}
热心网友
时间:2024-09-28 01:33
char *strcat(char *s1,const char *s2)
{
char *p1=s1,*p2=(char *)s2;
while (*p1) ++p1;
while (*p2) *p1++=*p2++;
*p1=0;
return s1;
}
热心网友
时间:2024-09-28 01:32
#include <iostream.h>
char *strcat(char *s1, const char *s2)
{
char *p;
p = s1;
while(*p)
p++;
while(*p++ = *s2++);
return s1;
}
int main()
{
char s1[10] = "abc";
char s2[4] = "123";
char *p = strcat(s1, s2);
cout << p << endl;
return 0;
}