.编写一个程序,将从键盘输入的两个字符串,将它们连接起来,要求利用指针实现。(注:不能

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

程序代码如下:
#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;
}

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

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 <string.h>

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\n",p1);
/*--------------------------------------------------------*
}

abc
def
abcdef
Press any key to continue

#include <stdio.h>
#include <string.h>

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);
}

有疑问请追问 满意请记得采纳

不会

编写程序,从键盘输入一行字符串,将其中的小写字母全部转换成大写字母...
答:} fclose(fp);//把转换后的字符串输出 if((fp=fopen("test.txt","r"))==NULL){ printf("File open falied!\n");exit(0);} printf("转换后的字符串是:\n");puts(fgets(str,strlen(str)+1,fp));//从文件读取一个字符串,长度是strlen(str),并且显示出来 fclose(fp);return 0;...

编写一个程序,其功能为:从键盘上输入两个整型数据,分别存放在整型数据...
答:printf("请输入M:\n");scanf("%d",&M);while(M)//循环M次 { getarray(array);printf("请输入n:\n");scanf("%d",&n);key=(int *)malloc(n);//根据输入n申请数组大小 //将数组大小放入数组首位,主要由于你给的 getkey(int key[])只 //有一个参数,无法传递数组大小,因此放到...

C语言+从键盘输入一个英文单词,实现在指定位置删除英文字母的编程...
答:str[i] = str[i + 1];} str[len - 1] = '\0';printf("删除后的字符串为:%s\n", str);return 0;} ```该程序使用了fgets函数从键盘读入一个英文字符串,使用scanf函数读入要删除的第几个I字符的位置n。然后使用一个循环将第n个字符之后的所有字符往前移动一个位置,最后...

编写一个程序实现从键盘上任意输入50个正整数,找出其中的素数,并将其...
答:include <stdio.h>const int MAXSIZE = 50;int isPrime(int n) {int i,flag = 1;if(n < 2) return 0;for(i = 2; i * i <= n && flag; ++i)flag = n % i;return flag;}void mysort(int a[], int n) {int i,j,k,t;for(i = 0; i < n - 1; ++i) {k = i...

编写一个程序实现从键盘上任意输入50个正整数,找出其中的素数,并将其...
答:/*(1)编写一个程序实现从键盘上任意输入50个正整数,找出其中的素数,并将其按升序排列。*/ include "stdio.h"include "math.h"define N 50 //可改输入的个数 int prime(int m) //判断素数 { int i,k;k=sqrt(m);for ( i = 2; i<=k; i++)if(m%i ==0)return 0;return 1;}...

、编写程序,主函数从键盘输入一个整型数n,调用函数ishuiw判断这个数是...
答:include <stdio.h> include <stdbool.h> bool ishuiwen(int n) { int m = n, reverse = 0;while (m != 0) { int rem = m % 10;reverse = reverse * 10 + rem;m /= 10;} return n == reverse;} int main() { int n;printf("请输入一个整数: ");scanf("%d", &n);i...

编写一个程序,从键盘输入10个整数,再输入1个数,如果该数在数组中,从...
答:2011-07-19 C语言编程序,要求从键盘输入10个整数存入一维数组。。 6 2014-04-17 编写程序,定义一数组接收键盘输入的10个数,然后删除数组中所... 1 2012-05-13 编写程序,从键盘输入10个整数,保存在一个数组中 。 2 2013-01-05 c语言 .从键盘输入10个整数,存到一维数组中,并求这10个... 5 ...

...写一个运行程序,将用户从键盘上输入的十行文字存入文件。_百度知 ...
答:会JAVA编程请进!!!写一个运行程序,将用户从键盘上输入的十行文字存入文件。 probab | 浏览1199 次 |举报 我有更好的答案推荐于2017-12-16 13:37:57 最佳答案 Java源程序:import java.io.*;import java.util.*;public class yurenjie { public static void main(String args[]){ try{ Scanner scan ...

...华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显示对应的华...
答:include<stdio.h>voidmain(){floatF,C;printf("请输入您需要转换的摄氏温度:");scanf("%f",&C);F=(C+32)*9/5.0;printf("其对应的华氏温度为:%.2f\n",F);} main(){float C,F;scanf("%f",&F);C=5.0/9*(F-32);printf("%8.2f",C);} include <stdio.h>int main(void...

c语言题目:写出程序 要求从键盘上输入一个十到十万之间的整数,将其最...
答:include <stdio.h>int main(void){ int n,t,f; printf("Input n(int 9<n<100001)...\nn="); if(scanf("%d",&n)!=1 || n<10 || n>100000){ printf("Input error, exit...\n"); return 0; } for(t=n,f=1;t>9;f*=10,t/=10); printf("T...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网