| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1191 人关注过本帖
标题:有两道C语言的题不会。。。。
只看楼主 加入收藏
chenjin1st
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:26
专家分:44
注 册:2011-5-13
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
本人测试过能用。不知道怎么上图。你可以把代码复制后测试。
程序代码:
/*
①从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。注意,这两个字符串最长均可达到127个字符、最短均可为0个字符。
②将字符串s2插入字符串s1中,插入方法为:s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的s1后。提示,合并时可使用中间数组。例如:
s1输入为"123456789",S2输入为"abcdefghijk",则输出的s1为1a2b3c4d5e6f7g8h9ijk
③在屏幕上输出新生成的s1。 

*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
  int a=0;
  char *s1,*s2,*s3;
  s1=(char *)calloc(100,sizeof(char));
  s2=(char *)calloc(100,sizeof(char));
  s3=(char *)calloc(100,sizeof(char));
  printf("请输入字符串S1:");
  gets(s1);
  printf("请输入字符串S2:");
  gets(s2);
  if(strlen(s1)>strlen(s2)){
   while(s1[a]!='\0'){
    s3[a]=s1[a+1];a++;
   }
   a=0;
   while(s2[a]!='\0'){
    s1[2*a+1]=s2[a];
    s1[2*a+2]=s3[a];
    a++;
   }
   while(s3[a]!='\0'){
     s1[a+3]=s3[a];
     a++;
   }
   s1[a+3]='\0';
   printf("重新交叉排列后的S1为%s\n",s1);
  }else{
   while(s1[a]!='\0'){
    s3[a]=s1[a];a++;
   }
   a=0;
   while(s3[a]!='\0'){
    if(a==0){
     s1[0]=s3[0];
     s1[1]=s2[0];
    }else{
     s1[2*a]=s3[a];
     s1[2*a+1]=s2[a];
    }
    a++;
   }
   while(s2[a]!='\0'){
     s1[a+3]=s2[a];
     a++;
   }
   s1[a+3]='\0';
   printf("重新交叉排列后的S1为:%s\n",s1);
  }
  free(s1);
  free(s2);
  free(s3);
}


[ 本帖最后由 chenjin1st 于 2011-5-19 20:39 编辑 ]

共同进步,共同收获!!!!
2011-05-19 16:37
快速回复:有两道C语言的题不会。。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved