请编写一个程序,利用指针实现两个字符串的连接

作者&投稿:长春 (若有异议请与网页底部的电邮联系)
.编写一个程序,将从键盘输入的两个字符串,将它们连接起来,要求利用指针实现。(注:不能~

#include
#include

void main()
{
char str1[100],str2[100];
char *p1,*p2;
int i;
/*--------输入字符串------------------------*/
printf("Please input String str1 end by press *:");
i=0;
do
{
scanf("%c",&str1[i]);
i++;
}
while (str1[i-1]!='*');

printf("/n Please input String str2 end by press *:");
i=0;
do
{
scanf("%c",&str2[i]);
i++;
}
while (str2[i-1]!='*');
/*----------------------------------*/


/*------------连接字符串------------------------------------------*/
p1=str1;
p2=str2;
while (*p1) p1++;

while (*p2)
{
*p1=*p2;
p1++;
p2++;
}

*p1='\0';
printf("/n The New String is:%s
",p1);
/*--------------------------------------------------------*
}

char *combine(char *p1,char *p2)
{
int num1=0,num2=0,i;
char *p3; //返回的字符指针,函数中还充当中转
p3=p1; //
while ( *p1++ != '\0' )
num1++; //第一个字符串的长度
p1=p3;
p3=p2;
while(*p2++!='\0')
num2++; //第二个字符串的长度
p2=p3;
p3=(char *)malloc((num1+num2+1)*sizeof(char));
for (i=0;i<num1;i++)
*(p3+i)=*(p1+i);
for (i=0;i<num2;i++)
*(p3+num1+i)=*(p2+i);
*(p3+num2+num1)='\0'; //字符串后+\0
return p3;
}
直接调用行了,其实string.h中有这个函数strcat(str1,str2);

程序代码如下:

#include<stdio.h>

#include<stdlib.h>

//获取初始化的字符数组 

char* initialize(int length);

int main(void)

{

char *s1, *s2, s;

int length, i=0, cnt=0;

    //输入字符串长度 

printf("请输入这两串字符的最大长度:");

scanf("%d",&length);

//初始化 

s1 = initialize(length*2);

s2 = initialize(length);

    //输入 

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

scanf("%s", s1);

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

scanf("%s", s2);

//拼接 

while(s1[++cnt]!='\0');

while(s2[i]!=0){

s1[cnt++] = s2[i++];

}

//输出 

printf("这两串字符的连接为:%s
", s1);

free(s1);

free(s2);

system("pause");

return 0;

}

char* initialize(int length)

{

int i;

char *s = (char*)malloc(sizeof(char)*length);

for(i=0; i<length; i++){

s[i] = '\0';

}

return s;

}

扩展资料:

计算机对除机器语言以外的源程序不能直接识别,理解和执行,都必须通过某种方式转换为计算机能够直接执行的。

这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。

解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。

编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析,语法分析,语意分析,代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序;

然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。



第一个for加上分号,才是一个完整的for语句;如果没有;那么下面的for就是上面for语句的一部分
第一个for将p指针移到字符串末尾,第二个for将第二个字符串的值从末尾复制到第一个字符串

你的程序应该如下写法:
#include <stdio.h>
void main( )
{
char * p , * q, a[80], b[80] ;

p = a ; q = b ;

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

gets(a) ;

printf("请输入要连接的字符:") ;

gets(b) ;

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

; /* 其中一个单个的分号表示空语句。即什么都不做, 继续执行下一条语句 */

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

{

( * p ) = ( * q ) ;

p ++ ;

}

(* p) = '\0' ;

printf("连接后的字符串:%s\n", a) ;

}

#include <stdio.h>
#include <stdlib.h>
main()
{
char a[20],b[20],c[40];
char *p1,*p2,*p3;
printf("input a:");
gets(a);
printf("input b:");
gets(b);
p1=a;p2=b;p3=c;
while(*p1!='\0')
{
*p3++=*p1++;
}
while(*p2!='\0')
{
*p3++=*p2++;
}
puts(c);
getch();
}


采用穷举法,使用for语句编写一程序求两个整数的最大公约数和最小公倍...
2015-12-28 c语言:编程实现任意由键盘输入两个正整数,求这两个正整数的最... 14 2013-11-02 使用c语言编写个程序,求出任意两个数的最大公约数和最小公倍数... 9 2014-10-21 用C语言编写一个可以求输入的两个数的最大公约数和最小公倍数的... 12 2011-06-17 编写一程序,利用跳转语句和循环...

用C++编写一个程序,键盘输入若干个整数,输入字母为结束数据输入,最后...
其实我感觉3楼的scanf语句使用的好,不过我没有验证其是否可以满足多种情况。下面是我根据楼主需求,利用getchar()函数写的能处理负数的程序。\/*程序说明:回车键作为两个数据之间的分隔点,输入特殊字符后也必须回车键才能结束,getchar()函数必须通过换行符才能开始处理字符,支持正负数同时处理。*\/ ...

编写一个猜数的游戏程序。(数字由机器随机产生,限制为1~100之间的整数...
static void Main(string[] args){ string i = null;do { Console.Write("请输入一个整数(范围为1~100)\\n如果要退出,请输入0!否则输入1!");i = Console.ReadLine();if (i.Trim().Equals("0")){ return;} } while (!i.Trim().Equals("1"));start:Random ra = new Random()...

编程题2、编写程序,要求用单字符输入函数getchar0从键盘上随机输入一个...
编程题2、编写程序,要求用单字符输入函数getchar0从键盘上随机输入一个英文小写字母,利用单字符输出函数putcha()输出该字母的对应大写字母和相应的ASCI值。英语(美国)播入 N【提问】您好,正在为您编辑答案,需要点时间,请稍等,谢谢。❤️【回答】好的【提问】include int main(){ c...

C语言问题,编写一个程序计算矩形的面积和周长
1.代码参考:(边长可以是整数也可以是小数;实现乘法的运算符是*)2.代码参考:

C语言程序,请你编写一个程序计算每个学生的平均成绩并按降序排序_百度...
你这个可以用链表来写,同类型我已经写过几次链表的,需要你可以去我回答记录里找。这次,我不用链表,直接用2维数组,冒泡排序,那你参考吧。原理:1、数组内存的连续性 2、利用指针冒泡排序 include<stdio.h>#include<stdlib.h>#includevoid prStu(float *stu);\/\/打印学生成绩 参数:数组...

如何用plc编写具有互锁功能的程序?
图1b为起动优先程序,即当X1和X2同时接通,则Y1接通。起保停程序也可以用置位(SET)和复位(RST)指令来实现。在实际应用中,起动信号和停止信号可能由多个触点组成的串、并联电路提供。2.具有互锁功能的程序利用两个或多个常闭触点来保证线圈不会同时通电的功能成为“互锁”。三相异步电动机的正反转...

编写C语言程序,把一个数组按从小到大的次序排列起来
if (number[j] > number[j + 1])\/\/比较大小并将小的赋给前面的数组 { k = number[j];\/\/将相对较大的元素赋值给中间元素 number[j] = number[j + 1];\/\/将相对较小的元素送达前面一个位置 number[j + 1] = k;\/\/将中间变量元素送给后面一个位置 } if (New_number[j] < New_...

编写一段javascript程序,要求用户输入一个整数N,计算从1加到N,要求使 ...
result=num*(num+1)\/2; \/\/利用数列的求和公式 } alert("所得的结果是: "+result);\/\/用消息框显示结果 } } 这个是JS程序,我做了异常处理,也就是说用户如果输入的不是整数要提醒用户,下面我弄的全部代码: 求和 function myresult(){\/\/定义一个函数 var result=0;\/\/用来保存...

编写一个程序计算三角形、正方形和圆形三种图形的面积。
r1;} void disp(){ cout<<"圆形面积:"<<pi * r * r<<endl;}};int main() { base *p;triangle t(20, 20);\/\/第一个参数为三角形底边,第二个参数为底边上的高square s(20);circle c(20);p = &t;p->disp();p = &s;p->disp();p = &c;p->disp();return 0;} ...

涵江区19177083792: 请编写一个程序,利用指针实现两个字符串的连接 -
月泰产妇: 第一个for加上分号,才是一个完整的for语句;如果没有;那么下面的for就是上面for语句的一部分 第一个for将p指针移到字符串末尾,第二个for将第二个字符串的值从末尾复制到第一个字符串

涵江区19177083792: 请编写一个程序,利用指针实现两个字符串的连接 -
月泰产妇: p1 = a;p2 = b;p3 = c;while(p1){*p3++ = *p1++;}while(p2){*p3++ = *p2++;}*p3 = '\0';方法二:strcpy(c,a);strcat(c,b);

涵江区19177083792: 试编一程序,利用指针实现任意两个字符串的连接(要求将第二个字符串连接到第一个字符串的末尾). -
月泰产妇: char *combine(char *p1,char *p2) {int num1=0,num2=0,i;char *p3; //返回的字符指针,函数中还充当中转p3=p1; //while ( *p1++ != '\0' )num1++; //第一个字符串的长度p1=p3;p3=p2;while(*p2++!='\0')num2++; //第二个字符串的长度p2...

涵江区19177083792: 编写程序由用户手工任意输入两个字符串请使用指针方式将两个字符串联接起来怎样做 -
月泰产妇: #include stdio.h#include string.hvoid main(void){ char str1 ,str2 ,*s1,*s2; s1 = str1; s2 = str2; printf(请输入两个字符串,以空格为界.\n); scanf(%s %s,s1,s2); printf(输出结果:%s\n,strcat(s1,s2));}

涵江区19177083792: 用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; }

涵江区19177083792: 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; }

涵江区19177083792: 编程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; }

涵江区19177083792: .编写一个程序,将从键盘输入的两个字符串,将它们连接起来,要求利用指针实现.(注:不能
月泰产妇: abc def abcdef Press any key to continue #include &lt;stdio.h&gt; #include &lt;string.h&gt; void main() { char a[50],b[50]; gets(a); gets(b); char *p,*q; p=a; q=b; while (*p++); *p--; while (*q) { *p++=*q++; } *p='\0'; printf("%s\n",a); } 有疑问请追问 满意请记得采纳

涵江区19177083792: c语言编程,使用指针做为函数参数,编写一个字符串交换函数,实现两个字符串内容的交换 急求,多谢! -
月泰产妇: 展开全部#include void swap(char *a, char *b){ int ch; while(*a && *b) ch=*a,*a=*b,*b=ch,a++,b++; if(*a){ *b++=*a,*a++='\0'; while(*b++=*a++); } else if(*b){ *a++=*b,*b++='\0'; while(*a++=*b++); } }

涵江区19177083792: 用指针编程输入两个字符串str1,str2,实现将字符串str2的内容连接到str1的末尾
月泰产妇: int main() { char a[100], b[100]; char* str1 = a char* str2 = b; scanf("%s", str1); scanf("%s", str2); while (++str1); while (str2) { str1++ = str2++; } *str1 = '\0'; str1 = a; printf("%s\n", str1); return 0; }

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