C语言字符指针问题,请会的进来看下

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:27:46
#include "stdio.h"

#include "conio.h"

#include<stdlib.h>

char add(char *p,char *pt)

{

char *ptr=p;

ptr=strncat(p,pt,7);

return ptr;

}

main()

{

char a[]="World!",*b="Hello";

char *p,*pt,*ptr;

p=a,pt=b;

ptr=add(pt,p);

puts(ptr);

getch();

}
大家帮我看下我的程序错在哪,程序功能是函数add接受main函数的两个字符数组,并把两个字符数组连接起来并用指针返回给main函数!谢
把这里char add(char *p,char *pt)改成char *add(char *p,char *pt),编译器会报警,提示ptr=strncat(p,pt,7);不可移动的指针在add函数中,但可以得到结果,怎样才能把报警的错误清除?

char add(char *p,char *pt) /*这出问题了 返回的是字符 不是指针*/
char *add(char *p,char *pt)/*这才是返回指针*/
/*快加分要不下次不答你的题*/

>把这里char add(char *p,char *pt)改成char *add(char *p,char *pt),编译器会报警,提示ptr=strncat(p,pt,7);不可移动的指针在add函数中,但可以得到结果,怎样才能把报警的错误清除?

前头加一行:
#include <string.h>

用strcat(p,pt);链接两个串