用C语言编程,这题怎么做,请高手赐教啊,谢谢了。

编写程序,定义并调用函数char *strcat(char *s,char *t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址

#include "stdio.h"
char * strcat(char *s,char *t)
{

   char *result=s;
 while(*s)
 {
  s++;
 }
 while(*s++=*t++)
 {
  ;
 }
 return result;
}

int main()

{

 char s[20]="Hello";

 char t[10]="wolrd";

 printf("%s\n",strcat(s,t));

 printf("%s\n",s);


}

请参考:

http://baike.baidu.com/view/1028534.htm

 

strcat函数

追问

编译无错误,执行有错误。执行不了。执行时出现这个。

-------------------Configuration: 字符串连接1 - Win32 Debug--------------------
Linking...
LIBCD.lib(strcat.obj) : error LNK2005: _strcat already defined in 字符串连接1.obj
Debug/字符串连接1.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

字符串连接1.exe - 1 error(s), 0 warning(s)

追答

你工程里有多个文件,几个文件中都有strcat函数,你查看下,去掉其他文件的strcat函数的定义体,我自己测试过得
还有,一定不要包含string.h这个头文件

温馨提示:内容为网友见解,仅供参考
无其他回答

用C语言编程:定义一个宏,将大写字母变成小写字母。请高手赐教。
如果确定只是大写字母的话,那么直接这样就行#define LOWER(c) c+=32在程序中调用LOWER(c) c是字符. 当然为了保险起见,我加了个判断. 具体见下面的程序: #include <stdio.h>#define LOWER(c) ((c >= 'A' && c <= 'Z') ? (c+=32) : c)int main(){ char c;c=getchar();...

用C语言编一个程序,需要10个1-81之间的不能相同的随机数,注意随机数...
刚才有点小错误,现在可以了..你可以修改下看20个数有无重复,我试过OK!include main(){int i,j,z[10];for(i=0;i<10;i++)z[i]=rand()%81+1;for(i=0;i<10;i++) \/*利用一个二重循环使一维数组中所有元素都不同*\/ {for(j=10;j<i;j--) \/*我这里用的是冒泡法,你可以用下...

用C语言来编写两个线性表合并为一个线性表的程序,初学者,不太会,麻...
改进:由于A、B是排好序的,先把A丢进C里,再拿B元素一个个往里查找插入。这么做要频繁移动元素,如果线性表不是链表的话,开销很大。再改进:从A、B中各拿一个元素出来,比较后把小的放进C里,再从刚才拿出元素的那个表里再拿个元素出来,再比较,把小的放进C里,重复这样的操作,直到A、B...

麻烦各位牛人,用C语言写个程序,输出 A ABA ABCBA ABCDCBA 怎么输出...
其实你的程序里面只要改一个地方就好了 就是 for(j=1;j<=2*i-1;j++)这句话里面的j你换一个字母,不要用j,在重新定义一个字母换进去,我试过了,可以的

C语言中scanf的问题,请各路高手不吝赐教
第一个问题,scanf不可能控制只允许输入什么不允许输入什么,它只能在输入结束后判断输入是否合乎格式。第二个问题,方法很多,比如你是int数组,那么每个数据之间用空格或者回车分开就可以实现分别保存了。

C语言编程 1、输入四个数,将四个数分别从小到大、从大到小排序后进行...
main(){ FILE *fin,*fout;fin=fopen("maopao!.in","r");fout=fopen("maopao!.out","w");int i,j,t;int a[10];for(i=0;i<10;i++)fscanf(fin,"%d",&a[i]);fprintf(fout,"\\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){ t=a[i];a[i...

c 语言除法问题,请高手赐教
在C语言中,符号‘\/’表示的意思是整除,即:当除数'a'和被除数'b'都是整型(int)时,当运算'c=a\/b'时,所得结果c为a除以b所得商(余数去掉不要),如2\/3=0(0为商,2为余数——去掉不要);而当除数'a'和被除数'b'有一个不是整型(可为浮点型),那么此时的‘\/’跟数学运算上的...

C语言变量申明问题!小弟是新手,才学C语言,希望高手不吝赐教!!!没有分...
include<stdio.h> include<math.h> main(){ double y;double x;printf("Please enter the x:");scanf("%lf", &x);if(x>0){ y=exp(-x);printf("%f",y);} else if(x==0){ y=1;printf("%f",y);} else { y=-exp(x);printf("%f",y);} } ...

...1\/3+1\/5-1\/7+1\/9...)的前n项之和 求高手赐教【简单通俗一点...
int main(void){ int i,j=1,n;double pi=0;printf("please input n:\\n");scanf("%d",&n);\/\/输入项数n for(i=1;2*i-1<=n;i=i+2) \/\/每次递增2 { pi=pi+j*(1.0\/i);\/\/第n项的公式 j=-j;} pi=pi*4;\/\/乘以系数4 printf("%lf\\n",pi);\/\/输出圆周率PI return 0;...

!跪求!c语言用“*”代替密码和密码判断的源代码。我快崩溃了。。。请...
int Key=0;char *Password; Password=(char *)malloc(len+1);while(1) { Key=getch();\/*处理回车键*\/ if (Key==13) { Password[i]='\\0';break;} else { \/*处理BackSpace键*\/ if (Key==8) { if (i>0) { i--;printf("\\b");printf(" ");printf("\\b");} } else ...

相似回答