c语言编程 要用指针把两个字符串连接起来, 我这么编的不知道哪错了。求指教,求正解。谢谢

作者&投稿:樊俊 (若有异议请与网页底部的电邮联系)
C语言编写一个程序,将两个字符串连接起来,不要使用strcat函数 求大神,我这个代码哪里不对呢?~

函数头我就不和你写了!
int a[20],b[20],i=0,j=0;
while(a[i]!='\0')
{
i++;
}
while(b[i]!='\0')
{
a[i++]=b[i++];
}
a[i]='\0';
printf("%s",a);

就可以了!!

#include
int main()
{
char s1[80],s2[40];
int i=0,j=0;
printf("
Input the first string:");
scanf("%s",s1);
printf("
Input the second string:");
scanf("%s",s2);
while (s1[i] !='\0')
i++;
while (s2[j] !='\0')
s1[i++]=s2[j++]; /* 拼接字符到s1 */
s1[i] ='\0';
printf("
New string: %s",s1);
}

语法有错误,可以按照如下方法实现用指针把两个字符串连接起来:

1、第一步,创建一个新项目和.c文件,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,定义变量类型,见下图的代码,转到下面的步骤。

3、第三步,执行完上面的操作之后,调用cpy函数,见下图的代码,转到下面的步骤。

4、第四步,执行完上面的操作之后,定义一个函数,了解并定义变量类型,见下图的代码,转到下面的步骤。

5、第五步,执行完上面的操作之后,使用For语句和if语句来进行判断,见下图的代码,转到下面的步骤。

6、第六步,执行完上面的操作之后,添加一个字符串终止符,并将其输出到main函数中,见下图的标记的代码,转到下面的步骤。

7、第七步,执行完上面的操作之后,执行并得出结果,两个字符串连接起来了,见下图。这样,就解决了这个问题了。



#include<stdio.h>

void main()

{

 char s[20],c[20];

 char *p,*q;

 p=s,q=c;

 printf("请输入一串字符:");

 gets(p);

    printf("请输入一串字符:");

 gets(q);

 for(p=s;*p!='\0';p++);//这里加上分号


 for(q=c;*q!='\0';q++)

  *p++=*q;

  *p='\0';

 printf("连接后的字符串为:%s
",s);//输出的是s,不是p

}




void main()
{
char s[100],c[20],d[20];
char *p,*q, *sp;
sp = s;
p = c;
q = d;
printf("请输入一串字符:");
gets(c);

printf("请输入一串字符:");
gets(d);

for (;*p != '\0';) {
*sp++ = *p++;
}

for (;*q != '\0';) {
*sp++ = *q++;
}
*sp = '\0';
printf("连接后的字符串为:%s\n",s);
}

#include<stdio.h>
#include <string.h>
void main()
{
char s[20],c[20],x[40],i,j;
char (*p)[20],(*q)[20];
p=&s,q=&c;
printf("请输入一串字符:");
gets(*p);
printf("请输入一串字符:");
gets(*q);
strcat(*p,*q);
printf("连接后的字符串为:%s\n",*p);
}

第一个for后加分号隔开试试


凌云县19413145883: 用指针合并两个字符串(C语言) -
柘贾可明: #includevoid fun(char* dest, char* s1, char* s2) { while (*dest++=*s1++); dest--; while (*dest++=*s2++); } main() { char dest[256]; char* s1="Happy "; char* s2="New Year"; fun(dest,s1,s2); printf("%s\n",dest); }

凌云县19413145883: 用C语言,编写一个函数,通过指针连接两个字符串? -
柘贾可明: 看错原型了,重新修改如下,希望可以帮到你. char* str_cat(char *src, char *dec, int n ) // 不考虑src的数组溢出 { char *s = src; while(*src++)// 找到src的结束位置,就是0结尾的地方 ; // 分号 while(n--){ // 在src的结束位置开始加入dec的字符,直到dec遇到0结束 *src = *dec++; src++; } *src = 0; return s; }

凌云县19413145883: c程序,使用指针作为函数参数,编写函数实现两个字符串连接 -
柘贾可明: char *mycat(char *a,const char *b){char *t;if(!a || !b)return NULL;t=a;while(*a) a++;while(*a++=*b++);return t; }

凌云县19413145883: C语言编程,用指针实现字符串连接. -
柘贾可明: #include<stdio.h> void strcat(char *s1,char *s2) { for(;*s1!='\0';s1++); for(;s2!='\0';s2++,s1++) *s1=*s2; *s1='\0'; }

凌云县19413145883: 编程c程序,使用指针作为函数参数,编写函数参数实现两个字符串首尾连接 -
柘贾可明: #include <iostream> using namespace std; int main() { char *cat(char *a,char *b); char s1[50] = "please ",*s2 = "let me in."; puts(cat(s1,s2)); return 0; } char *cat(char *a,char *b) { char *p = a,*q = b;while(*p++); p--; while(*p++ = *q++);*p = '\0'; return a; }

凌云县19413145883: c语言编写将两个字符串连接的程序.要求:不使用库函数,利用指针变量实现. -
柘贾可明: #include<stdio.h> void fun(char *t,char *s) { while(*t!=0)t++; while((*t++=*s++)!=0); } main() { char ss[]="acc",aa[]="bbxxyy"; fun(ss,aa); printf("%s\n",ss); }这样的代码!

凌云县19413145883: 急求..用指针方法编写函数strcat,用两个字符串连接起来,用c语言编程 -
柘贾可明: void strcat(char *s1,char *s2) { while(*s1)s1++; while(*s1++=*s2++); }

凌云县19413145883: c语言 指针交换两个字符串 -
柘贾可明: 长度不同,两者存放单元的个数应当都大于 最长的字符串,否则交换以后 存不下,会出错.#include <stdio.h>#include <stdlib.h> void jh(char *p1, char *p2){ char *t; int i,L; L = strlen(p1); if (strlen(p2) > L) L = strlen(p2); t = (char *) malloc(sizeof(char...

凌云县19413145883: C语言之指针:连接两个字符数组 -
柘贾可明: 1 通过指针,找到第一个目标字符数组结尾2 将源字符数组逐项复制到目标字符数组尾部3 在最后添加结束符\0 代码:void my_str_cat(char *a, char *b) { while(*a)a++; a--; while(*b)*a++=*b++; *a='\0'; }

凌云县19413145883: c语言//用指针型函数(函数返回值为指针)实现字符串连接函数strcat()的功能,将两个字符串连接起来
柘贾可明: 当然了,你看看你这个函数的最后一句 *p='\0'; return(p); p自然指向的是一个'\0'了,应该直接printf(ch1); 还有你这个程序逻辑也是由问题的(我试了一下),自己去看看

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网