编写函数,实现两个字符串的连接功能。要求用字符指针实现
两个字符串要求自己输入!!!
自己想出来的~~没有用strcat函数,所以有点长~~~哪位高手帮改下,要用到要strcat函数
#include<stdio.h>
void main()
{
char s1[80],s2[40];
int i=0,j=0;
printf("input string1:");
scanf("%s",s1);
printf("input string2:");
scanf("%s",s2);
while(*(s1+i)!='\0')
i++;
while(*(s2+j)!='\0')
{*(s1+i)=*(s2+j);
i++;
j++;
}
s1[i]='\0';
printf("The new string is:%s\n",s1);
}
[此贴子已经被作者于2007-6-12 22:53:01编辑过]
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<string.h>
void main()
{
char *str1[50]="maybe you are right";
char *str2[]=" actually you are wrong!";
printf("%s",strcat(*str1,*str2));
}
编了这个,结果出错了
----------------解决方案--------------------------------------------------------
你那样是不行的...
#include<stdio.h>
#include<string.h>
int main()
{
char str1[40]="maybe you are right";
char *str2=" actually you are wrong!";
printf("%s",strcat(str1,str2));
getchar();
return 0;
}
----------------解决方案--------------------------------------------------------
我想题目要求的意图是让你自己编写一个函数实现字符串链接功能,使用字符指针来实现,而不是简单的调用一个strcat()函数
----------------解决方案--------------------------------------------------------
你那样是不行的...
#include<stdio.h>
#include<string.h>
int main()
{
char str1[40]="maybe you are right";
char *str2=" actually you are wrong!";
printf("%s",strcat(str1,str2));
getchar();
return 0;
}
那如果字符串不是初使化就有的
是由用户自己输入的该怎么改??
----------------解决方案--------------------------------------------------------
运行3楼的程序还是出现了错误......
----------------解决方案--------------------------------------------------------
用指针这样连接:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str1[50]="maybe you are right";
char *str2=" actually you are wrong!";
for (i=0;i<strlen(str2);i++)
str1[strlen(str1)]=*(str2+i);
printf("%s\n",str1);
getchar();
return 0;
}
----------------解决方案--------------------------------------------------------
用指针这样连接:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str1[50]="maybe you are right";
char *str2=" actually you are wrong!";
for (i=0;i<strlen(str2);i++)
str1[strlen(str1)]=*(str2+i);
printf("%s\n",str1);
getchar();
return 0;
}
这句看不懂啊,好像有调用的意思
好像没这么长吧
----------------解决方案--------------------------------------------------------
己经很多天没解决了
----------------解决方案--------------------------------------------------------
全部用指针实现的
#include<string.h>
#include<malloc.h>
#include<stdio.h>
char * Mystrcat(char * str_1,char *str_2);
int main()
{
char *string;
string = Mystrcat("hello ","word");
puts(string);
return 0;
}
char * Mystrcat(char * str_1,char *str_2)
{
char *array,*ptr;
ptr=array=(char *)malloc(strlen(str_1)+strlen(str_2));
while(*ptr++ = *str_1++) ;
ptr--;
while(*ptr++ = *str_2++) ;
return array;
}
----------------解决方案--------------------------------------------------------