用指针的方法把两个字符串连起来

刚开始学c语言,不大懂指针的知识,不知道哪里写错了
#include<stdio.h>
main()
{int n,m;
char a[100],b[200];
char *p,*q;
gets(a);gets(b);
p=a;
p=b;
n=strlen(a);
m=strlen(b);
p=p+m;
*q=*p;
q=q+n;
*q='\0';
puts(a);}

#define _CRT_SECURE_NO_WARNINGS//宏定义, 取消安全检查, 也可以不加
#include <stdio.h>
#include <stdlib.h>
void main()
{
    int n = 0;
    int m = 0;
    int i = 0;
    char a[100] = { 0 };
    char b[200] = { 0 };
    char buff[300] = { 0 };//定义总的字符, 用来保存字符串a链接字符串b的值
    char *p = a;//指针赋值
    char *q = b;
    printf("请输入字符串 a :");//输入字符串
    gets(a);
    printf("请输入字符串 b :");//输入字符串    
    gets(b);
    while (*p != '\0')//循环取得字符串a中间的每一个字符, 结束符为 '\0'
    {
        buff[i] = *p;//将p指向的字符赋值给 buff[i]
        p++;//指针++
        i++;//位置++
    }
    while (*q != '\0')//循环取得字符串b中间的每一个字符, 结束符为 '\0'
    {
        buff[i] = *q;//将p指向的字符赋值给 buff[i]
        q++;//指针++
        i++;//位置++
    }
    buff[i] = '\0';//字符串的结束符置为 '\0'
    printf("%s, %s\n", a, b);
    printf("buff is : %s\n", buff);
    system("pause");
}

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

用指针的方法把两个字符串连起来
用来保存字符串a链接字符串b的值 char *p = a;\/\/指针赋值 char *q = b; printf("请输入字符串 a :");\/\/输入字符串 gets(a); printf("请输入字符串 b :");\/\/输入字符串 gets(b); while (*p != '\\0')\/\/循环取得字符串a中间的每一个字符, 结束符为 '\\0...

c语言编程 要用指针把两个字符串连接起来, 我这么编的不知道哪错了...
语法有错误,可以按照如下方法实现用指针把两个字符串连接起来:1、第一步,创建一个新项目和.c文件,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,定义变量类型,见下图的代码,转到下面的步骤。3、第三步,执行完上面的操作之后,调用cpy函数,见下图的代码,转到下面的步骤。4、第四...

用指针方案编写一个将两个字符串连接起来的函数,并写出能调用该函数的...
int main(){ char s1[40],s2[40],s[80];int len1,len2,i;printf("input string1:\\n");gets(s1);printf("input string2:\\n");gets(s2); len1=strlen(s1);len2=strlen(s2);for(i=0;i<len1;i++)s[i]=s1[i];for(i=0;i<len2;i++)s[i+len1]=s2[i];printf("after...

...实现字符串连接函数strcat()的功能,将两个字符串连接起来_百度...
j[20];printf("请输入字符串1:");scanf("%s", i);printf("请输入字符串2:");scanf("%s", j);\/\/p(i,j);printf("%s\\n",p(i,j));\/\/*p你要输出的是字符串,应该输入字符串连接后的字符串的地址}char *p(char *a,

用指针把两个字符串连接起来形成一个新字符串
void main (){ char a[50],b[50],c[100],*q=a,*w=b,*e=c;gets(a);gets(b);for(;*q!='\\0';q++){ e=*q;e++;} for(;*w!='\\0';w++){ e=*w;e++;} e ='\\0' \/\/这样 ^_^ 粗心啦 puts(c);}

...字符的两个字符串,用指针实现的两个字符串的连接。
l1 往后偏移 l2个单位就是b存储字符串的地方,所以打印出b字符串了!---分割线--- 再分析实现功能,实现两个字符串的连接!你这段代码只能说是打印语句,不是连接语句!!这样打印,还不如直接这样:for(i=0;i<l1;i++)printf("%c",a[i]);for(i=0;i<l2;i++)printf("%c",b[i]...

用指针合并两个字符串(C语言)
include<stdio.h> void 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);} ...

将两个字符串合并 用指针变量
} \/\/向该字符串的结束标志’\\0’。while(*strDest++ = *strScr++) \/\/是while((*strDest++ = *strScr++)!=’\\0’)的简化形式 { NULL; \/\/该循环条件内可以用++,} \/\/此处可以加语句*strDest=’\\0’;有无必要?return address; \/\/为了实现链式操作,将目的地址返回 } ...

c语言,输入两个字符串,连接成一个字符串,并输出。用指针实现。
include "stdio.h"include "conio.h"main(){char *p1,*p2;char a[20]="I am" ;char b[20]=" studen";p1 =a;p2 =b;while(*p1!='\\0')p1++;while(*p2!='\\0')p1++=*p2++;p1='\\0';printf("%s",a);} 编译通过没有问题!!!

用指针实现字符串的连接
printf("请输入第一串数字\\n");gets(a);printf("请输入第二串数字\\n");gets(b);printf("第一串数字为\\n");puts(a);printf("第二串数字为\\n");puts(b);while(*q!='\\0'){ q++;} while(*p!='\\0'){ q=*p;q++,p++;} printf("连接后的字符为:\\n");puts(a);return 0;...

相似回答
大家正在搜