C语言问题,将两个字符串连接起来,要求不用strcat()函数。
5个回答
展开全部
void main()
{ char lj(char m[100],n[100]);//长度任意定,但必须分别大于你要连接的两个字符串
char a[100],b[100];
gets(a);
gets(b);
lj(a,b);
puts(a);
}
char lj(char m[100],n[100])
{
int i,j;
for(i=0;m[i];i++);
for(j=0;n[j]!='\0';i++,j++)
m[i]=n[j];
m[i]='\0';
}
就是这样了,有啥疑问可以问我
{ char lj(char m[100],n[100]);//长度任意定,但必须分别大于你要连接的两个字符串
char a[100],b[100];
gets(a);
gets(b);
lj(a,b);
puts(a);
}
char lj(char m[100],n[100])
{
int i,j;
for(i=0;m[i];i++);
for(j=0;n[j]!='\0';i++,j++)
m[i]=n[j];
m[i]='\0';
}
就是这样了,有啥疑问可以问我
更多追问追答
追问
大哥,你这是写的2种方法吧,还是创建了一个连接函数
追答
自定义了一个连接函数,在主函数中调用
展开全部
#include"stdio.h"
void main()
{
void str_link(char str1[ ],char str2[ ]); //声明str_link函数
char s1[20],s2[20];
printf("任意输入两个字符串,编写函数,实现串的连接。函数原型如下:\n");
printf("void str_link(char str1[ ],char str2[ ]);将串2连接在串1的末尾,形成一个新串\n");
printf("please input s string:\n");
scanf("%s",s1); //输入第一个字符串
printf("please input a string:\n");
scanf("%s",s2); //输入第二个字符串
str_link(s1,s2); //调用str_link函数
printf("%s\n\n",s1);
}
void str_link(char str1[ ],char str2[ ]) //定义str_link函数
{
int i=0,j=0,m=0;
while(str1[i]!='\0') //计算str1的个数
{
m++;
i++;
}
do
{
str1[m]=str2[j]; //将str2复制到str1
m++;
j++;
}while(str2[j]!='\0');
str1[m]='\0';
}
void main()
{
void str_link(char str1[ ],char str2[ ]); //声明str_link函数
char s1[20],s2[20];
printf("任意输入两个字符串,编写函数,实现串的连接。函数原型如下:\n");
printf("void str_link(char str1[ ],char str2[ ]);将串2连接在串1的末尾,形成一个新串\n");
printf("please input s string:\n");
scanf("%s",s1); //输入第一个字符串
printf("please input a string:\n");
scanf("%s",s2); //输入第二个字符串
str_link(s1,s2); //调用str_link函数
printf("%s\n\n",s1);
}
void str_link(char str1[ ],char str2[ ]) //定义str_link函数
{
int i=0,j=0,m=0;
while(str1[i]!='\0') //计算str1的个数
{
m++;
i++;
}
do
{
str1[m]=str2[j]; //将str2复制到str1
m++;
j++;
}while(str2[j]!='\0');
str1[m]='\0';
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用strcat连接字符串
#include<string.h>
int main()
{
int i,j;
char str[300];
char str1[]={"people's republic of "};
char str2[]={" China"};
for(i=0;str1[i]!='\0';i++)
for(j=0;str2[j]!='\0';j++)
{
str[i]=str1[i];
str[i+j]=str2[j];
}
str[i+j]='\0';
puts(str);
return 0;
}
#include<string.h>
int main()
{
int i,j;
char str[300];
char str1[]={"people's republic of "};
char str2[]={" China"};
for(i=0;str1[i]!='\0';i++)
for(j=0;str2[j]!='\0';j++)
{
str[i]=str1[i];
str[i+j]=str2[j];
}
str[i+j]='\0';
puts(str);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void stringjoin(char *s1, char *s2)
{
while(*s1)
s1++;
while((*s1++ = *s2++) !='\0')
;
}
{
while(*s1)
s1++;
while((*s1++ = *s2++) !='\0')
;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
char* strcat(char s1[],char s2[])
{
int i,j;
for(i=0;s1[i]!=0;i++)
;
for(j=0;s2[j]!=0;i++,j++)
s1[i]=s2[j];
s1[i]=0;
return s1;
}
int main()
{
char s1[100]="abc",*s;
s=strcat(s1,"def");
printf("%s",s);
return 0;
}
char* strcat(char s1[],char s2[])
{
int i,j;
for(i=0;s1[i]!=0;i++)
;
for(j=0;s2[j]!=0;i++,j++)
s1[i]=s2[j];
s1[i]=0;
return s1;
}
int main()
{
char s1[100]="abc",*s;
s=strcat(s1,"def");
printf("%s",s);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询