CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

找出题中错误,写出错误内容,并加以改正

楼主pxn(pxn)2005-06-01 01:13:05 在 C/C++ / 新手乐园 提问

找出题中错误,写出错误内容,并加以改正  
  #   include<std   io.h>  
  main()  
  {  
  char*sl={“This   is”},*s2={     “a     exam   pie.”};  
  char*p;  
  p=sl;  
  for(;*(sl++)!=’\0’;);  
  while     (*s2!=’\0’)  
  {  
  *sl=s2;  
  sl++;  
  }  
  *(sl-l)=’\0’;  
  printf(“     %     s\n,     “     sl);  
  }  
  问题点数:20、回复次数:6Top

1 楼robot_wind()回复于 2005-06-01 01:47:25 得分 5

死循环!  
   
  while     (*s2!=’\0’)  
  {  
  *sl=s2;  
  sl++;  
  }  
  这里循环标志s2一直没有变化  
   
  改成  
  while     (*s2!=’\0’)  
  {  
  *sl++=*s2++;  
  }  
  Top

2 楼jixingzhong(瞌睡虫·星辰)回复于 2005-06-01 08:48:23 得分 5

函数是合并字符串  
   
  #   include<std   io.h>  
  main()  
  {  
  char*sl={“This   is”},*s2={     “a     exam   pie.”};  
  char*p;  
  p=sl;  
  for(;*(sl++)!=’\0’;);  
  while     (*s2!=’\0’)  
  {  
  *sl=s2;  
  sl++;  
  s2++;  
  }  
  *sl=’\0’;  
  printf(“     %     s\n,     “     sl);  
  }  
   
   
  除了楼上所说的   ,还有*(sl-l)=’\0’语句,应该是*s1,不是*(s1-1)。因为指针刚好在串尾,不需要倒退。  
  Top

3 楼halibut(g3)回复于 2005-06-01 08:54:18 得分 5

#   include<stdio.h>             <<<<<<<<<-----  
  main()                                     <<<<<<<<<默认返回   int,   结尾处未返回.  
  {  
  char*sl={“This   is”},*s2={     “a     exam   pie.”};  
  char*p;  
  p=sl;  
  for(;*(sl++)!=’\0’;);                   <<<<<<<<<<死循环  
  while     (*s2!=’\0’)  
  {  
  *sl=s2;                   <<<<<<<<<s1,   s2   都是常量字符串指针,   非数组,   这样做会死掉的.  
  sl++;  
  }  
  *(sl-l)=’\0’;                                 <<<<<<<不要   -1   .  
  printf(“     %     s\n,     “     sl);       <<<<<<<s1   指在结尾,   打出空串.  
  }  
   
   
  Top

4 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-06-01 09:00:18 得分 0

*sl=s2;  
  ------  
  修改常量是不行的。Top

5 楼llf_hust()回复于 2005-06-01 09:12:40 得分 0

#include<stdio.h>  
  #include<stdlib.h>  
  #include<ctype.h>  
  #include<string.h>  
  main()  
  {  
  char*s1="This   is",*s2="a     example!";  
  char   *p,*p1;  
    p   =   (char   *)   malloc   (strlen(s1)   +   strlen(s2)   +1);  
    p1   =   p;  
    for(;(*p   =   *s1)   !=   '\0';   s1++,p++)  
            ;  
    while(   *s2   !=   '\0'   )  
  {  
      *p++   =   *s2++;  
    }  
    *p   =   '\0';  
    printf("     %s     "   ,   p1);  
    getchar();  
  }  
  Top

6 楼shine51151(美丽心情)回复于 2005-06-01 11:57:28 得分 5

#include   <iostream.h>  
  #include   <stdio.h>  
  #include   <string.h>  
   
   
  void   main()  
  {  
   
  char   *s1="This   is",   *s2="   an   exam   pie.";  
  char   *p1,   *p2;  
   
  p2   =   new   char[strlen(s1)+strlen(s2)+1];  
   
  p1=p2;  
   
  while(*s1)  
  {  
  *p1++=*s1++;  
  }  
   
  while(*s2)  
  {  
  *p1++=*s2++;  
  }  
   
  *(p1)='\0';  
   
  printf("%s\n",   p2);  
   
  delete   []   p2;  
  }Top

相关问题

  • 输入错误,请帮忙改正
  • Com组件注册时报 “没有找到dllregisterserver输入点”错误,这可能是工程中什么错误造成的?怎么改正?
  • ATL中的错误!
  • JB中的错误!
  • hibernate中错误误,
  • CodeGuard中的错误!
  • 菜鸟系列:这是什么错误,如何改正?
  • printf should have a prototype的错误怎么改正?
  • 帮忙改正一个语法错误 万分感谢
  • 这是什么错误?如何改正!在线等!

关键词

  • sl
  • exam pie
  • strlen
  • printf
  • include
  • main
  • char

得分解答快速导航

  • 帖主:pxn
  • robot_wind
  • jixingzhong
  • halibut
  • shine51151

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo