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

作者&投稿:蓝齐 (若有异议请与网页底部的电邮联系)
请编写一个程序,利用指针实现两个字符串的连接~

程序代码如下:
#include
#include
//获取初始化的字符数组
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;
}

扩展资料:
计算机对除机器语言以外的源程序不能直接识别,理解和执行,都必须通过某种方式转换为计算机能够直接执行的。
这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析,语法分析,语意分析,代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序;
然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。

while((p3++=p1++) != '\0') NULL;while((p3++=p2++) != '\0') NULL: 我不知道写的对不对,我没有核对,因为那些优先级的运算我还有点不清楚,只是在string.h中的函数中有类似的算法,但思路大概就这样把,我很长时间没接触指针了,希望能给你帮助,代码大概意思就是第一个while就是你的第一步循环的一个一个的把p1的地址赋给p3同时各自到下一个指针。第二个while同上,因为在第一个while循环完之后p3的指针已经累计到'\0'的位置了,刚好可以接着把p2赋给p3。 不知道我说清楚了没,如果还有疑问,我很乐意回答,

程序代码如下:

#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;

}

扩展资料:

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

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

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

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

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




编写一个猜数的游戏程序。(数字由机器随机产生,限制为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()...

C++高手求助。利用指针编写程序实现在一个字符串的任意位置上插入一个...
char* insert(char*s,char c,int n){ int len=strlen(s); \/\/ 计算字符串的长度 if(n<=0){ \/\/ 如果n<=0就插入到第一个字符的位置 char *p=s; \/\/ 指针p指向字符串的首地址 p=p+len+1; \/\/ p指向该字符串的末尾再加一的地址 do{ p=*(--p); \/\/ 将指针p指向的前一个地址...

Java练习编写一个程序能够对学生对象进行插入、修改、删除、浏览、统计...
public class Student { private String id; private String name; private boolean sex; private String age; private String mobile; private String address; public Student() { } public Student(String id, String name) { this.id = id; this.name = name;...

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

编写一个程序计算三角形、正方形和圆形三种图形的面积。
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;} ...

请用C++编写这个程序 急~~~
基于MFC的Windows程序设计利用定义的类Student创建一个学生信息管理程序创建基于MFC的应用程序用数据文件来存储全部学生信息提供视窗用户界面能够增加、删除、修改学生信息类设计(参... 基于MFC的Windows程序设计利用定义的类Student创建一个学生信息管理程序创建基于MFC的应用程序用数据文件来存储全部学生信息提供视窗用户界面...

怎么编写C程序:从键盘输入一个整数,求其绝对值并输出(提示:使用库函数...
解:1、求整数绝对值可以使用库函数abs(int a),返回值就是a的绝对值,注意:abs函数在头文件math中。2、使用条件表达式使用:a>0?a:a*-1,就是判断a是否大于0,如果是直接返回a,否则返回a的相反数。参考代码:include<stdio.h>#include<math.h>\/\/引入头文件int main(){ int a,b,c;...

五个有手就行的py小项目学生来试试
目标:创建一个程序,可指定密码长度,生成一串随机密码。 提示:创建一个数字+大写字母+小写字母+特殊字符的字符串。根据设定的密码长度随机生成一串密码。 三、骰子模拟器 目的:创建一个程序来模拟掷骰子。×提示:当用户询问时, 使用random模块生成一个1到6之间的数字。 四、自动发送邮件 目的:编写一个Python脚本, ...

用c语言编写含有数组的程序,9个评委给某选手打分,去掉一个最高分和...
数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。以上内容参考:百度百科-...

用C语言怎么编写一个从1加到10的程序...新手求解
include <stdio.h> void main(){ int n;int sum=0; \/\/初始sum变量值为0;for(n=1;n<=10;n++){ sum=sum+n; \/\/从一加到10;} printf("1+2+...+10=%d",sum);}

寿阳县18244939433: 请编写一个程序,利用指针实现两个字符串的连接 -
笃委女金: 第一个for加上分号,才是一个完整的for语句;如果没有;那么下面的for就是上面for语句的一部分 第一个for将p指针移到字符串末尾,第二个for将第二个字符串的值从末尾复制到第一个字符串

寿阳县18244939433: .编写一个程序,将从键盘输入的两个字符串,将它们连接起来,要求利用指针实现.(注:不能使用strcat库函数) -
笃委女金: #includevoid concat(char *p,char *q) { int i=0; while(*p!='\0') p++; while(*q!='\0') *p++=*q++ ; *p='\0'; } main() { char a[7]="abc"; char b[]="def"; concat(a,b); puts(a); }

寿阳县18244939433: 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; }

寿阳县18244939433: 编写程序由用户手工任意输入两个字符串请使用指针方式将两个字符串联接起来怎样做 -
笃委女金: #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));}

寿阳县18244939433: 编程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; }

寿阳县18244939433: 试编一程序,利用指针实现任意两个字符串的连接(要求将第二个字符串连接到第一个字符串的末尾). -
笃委女金: 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...

寿阳县18244939433: 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++); } }

寿阳县18244939433: .编写一个程序,将从键盘输入的两个字符串,将它们连接起来,要求利用指针实现.(注:不能
笃委女金: 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); } 有疑问请追问 满意请记得采纳

寿阳县18244939433: 用指针编写一个函数void link(char *str1,*str2),连接两个字符串. -
笃委女金: void link(char *str1,char *str2) { int n=strlen(str1); str1+=n; while(*str1++=*str2++); }

寿阳县18244939433: 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); }这样的代码!

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