指针应用

daolaAmeng 2008-05-04 09:40:39
如何用指针实现如下:
1.用户选择所要输入的两个字符串字符的个数。
2.输入两个字符串。
3.将两个字符串连在一起输出。
下面是我变得代码,不能正常运行。


#include <stdio.h>
#include <stdlib.h>
void main()
{
int n1,n2,i;
char *k1,*k2,*j1,*j2,*p1,*p2;
printf("请输入所申请的两个空间的大小(用空格隔开):");
scanf("%d%d",&n1,&n2);

k1=(char *)malloc(n1*sizeof(char));
j1=(char *)malloc(n2*sizeof(char));
printf("qing shu ru na liang\n");
for(k2=k1,i=1;i<=n1;i++)
scanf("%c",k2++);
i=1;
for(j2=j1;i<=n2;i++)
scanf("%c",j2++);
for(p1=*k2; p1!='\0';k2++)
;
for(p2=*j2;p2!='\0';p1++,p2++)
*p1=*p2;
*p1='\0';
for(i=1;i<=n1+n2;i++,p1++)
printf("%s",*p1);
}
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
为了理想的奋 2008-05-10
  • 打赏
  • 举报
回复
不说逻辑问题了~说两个我的想法
1> 为什么要 malloc两次呢?malloc一次,然后分段不就好~
2> 如果使用的是VC6.0,建议用new,而不要随便malloc,原因是更好的防止内存泄露,malloc的泄露Debug检测不到的~
3> 虽然是练习或说试验,但还是优化一下你的变量命名吧^@^
我个人比较喜欢,无论是不是一条语句都会在 for之类的执行体上加上{} ,这样可以更好的突出程序块~
kaz33 2008-05-10
  • 打赏
  • 举报
回复


for(k2=k1,i=1;i <=n1;i++)
scanf("%c",k2++);
i=1;
for(j2=j1;i <=n2;i++)
scanf("%c",j2++);


为什么不这样些呢?

char* k1=(char *)malloc(5*sizeof(char));
char* j1=(char *)malloc(n2*sizeof(char));
scanf("%s",k1);
scanf("%s",j1);
ouyh12345 2008-05-04
  • 打赏
  • 举报
回复
k1=(char *)malloc(n1*sizeof(char));
j1=(char *)malloc(n2*sizeof(char));

得多分配一个字节,用来存放'\0'

for(i=1;i <=n1+n2;i++,p1++)
printf("%s",*p1);

*p1='\0';结果是输出字符串p1后面的字符
WingForce 2008-05-04
  • 打赏
  • 举报
回复



for(p1=*k2; p1!='\0';k2++);
for(p2=*j2;p2!='\0';p1++,p2++)
*p1=*p2;
*p1='\0';
for(i=1;i <=n1+n2;i++,p1++)
printf("%s",*p1);


这段修改为:

for (i = 0; i < n1; ++i) putchar(k1[i]);
for (i = 0; i < n2; ++i) putchar(j1[i]);
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 第 一 章 概述 1-1 简述计算机程序设计语言的发展阶段。 解: 自从计算机诞生以来,程序设计语言经历了从机器语言、汇编语言到高级语言的演变过程,C++语言作为一种面向对象的编程语言,也属于高级语言范畴。 1-2 面向对象的编程语言具备哪些特性? 解: 面向对象的编程语言与传统的编程语言有着本质的区别,其设计初衷是为了更直观地模拟现实世界中存在的事物及其相互关系。这类编程语言将客观事物视为具有属性和行为的对象,通过抽象方法提取出同一类对象的共同属性(静态特征)和行为(动态特征),从而构建类。借助类的继承与多态机制,能够便捷地实现代码复用,显著缩短软件开发周期,并确保软件风格的一致性。因此,面向对象的编程语言使得程序能够较为准确地反映问题域的本质,软件开发人员可以运用人类惯用的思维模式进行开发工作。C++语言是目前应用最为广泛的面向对象编程语言。 1-3 结构化程序设计方法是什么?这种方法有哪些优势和不足? 解: 结构化程序设计的核心思想是自顶向下、逐步求精;其程序结构按照功能划分为多个基本模块;各模块之间的关联尽可能简化,在功能上保持相对独立性;每个模块内部均由顺序、选择和循环三种基本结构构成;模块化实现的具体途径是利用子程序。结构化程序设计由于采用模块分解与功能抽象,自顶向下、分而治之的策略,从而有效地将一个较为复杂的程序系统设计任务分解成许多易于管理和处理的子任务,便于开发与维护。 尽管结构化程序设计方法具备诸多优点,但它本质上仍是一种面向过程的程序设计方法,将数据与处理数据的操作分离为相互独立的实体。当数据结构发生变化时,所有相关的处理过程都需要进行相应的调整,每一种...

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧