当前位置: 代码迷 >> C语言 >> 唉,没事干要求用字符指针~~想了半天只会用字符数组,请教!
  详细解决方案

唉,没事干要求用字符指针~~想了半天只会用字符数组,请教!

热度:398   发布时间:2007-06-07 23:36:52.0
唉,没事干要求用字符指针~~想了半天只会用字符数组,请教!

编写函数,实现两个字符串的连接功能。要求用字符指针实现
两个字符串要求自己输入!!!


自己想出来的~~没有用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编辑过]

搜索更多相关的解决方案: input  函数  字符指针  strcat  

----------------解决方案--------------------------------------------------------

#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()函数


----------------解决方案--------------------------------------------------------
以下是引用I喜欢c在2007-6-8 10:40:00的发言:

你那样是不行的...

#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;
}
----------------解决方案--------------------------------------------------------
以下是引用chyhome在2007-6-9 23:56:26的发言:
用指针这样连接:
#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;
}
str1[strlen(str1)]=*(str2+i);
这句看不懂啊,好像有调用的意思
好像没这么长吧
----------------解决方案--------------------------------------------------------

己经很多天没解决了


----------------解决方案--------------------------------------------------------
全部用指针实现的

#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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案