| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1289 人关注过本帖
标题:这个字符串定义好长呢?最大元素后边插入字符串了
只看楼主 加入收藏
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
结帖率:85.11%
收藏
已结贴  问题点数:14 回复次数:9 
这个字符串定义好长呢?最大元素后边插入字符串了
从键盘输入一个字符串,并在a串中的最大元素后边插入字符串b.
搜索更多相关主题的帖子: 元素 字符串 键盘 
2011-05-16 14:13
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:0 
#include<stdio.h>
#include<string.h>
main()
{
int i,j=0,l;
char t,x,s[10],ss[]="hello";scanf("%s",s);
 t=s[j];
for(i=1;i<10;i++)

if(s[i]>t)j=i;
for(l=0;j<10&&ss[l]!='\0';j++,l++)
s[j]=ss[l];
puts(s);
2011-05-16 14:56
一纸空白zj
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2010-12-14
收藏
得分:5 
#include<stdio.h>
#include<string.h>
main()
{
int i,j=0,l;
char t,x,s[10],ss[]="hello";scanf("%s",s);
t=s[j];
for(i=1;i<10;i++)

if(s[i]>t)j=i;
for(l=0;j<10&&ss[l]!='\0';j++,l++)
s[j]=ss[l];
puts(s);
2011-05-16 15:11
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
没看懂什么意思

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-16 16:44
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
楼主是想从a字符串中找出ascii码最大的那个,在后面插入字符串b吗?
2011-05-16 17:30
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用hjywyj在2011-5-16 17:30:33的发言:

楼主是想从a字符串中找出ascii码最大的那个,在后面插入字符串b吗?

a是zoo,b是abc,结果:zabcoo ?
这个意思?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-16 17:42
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:0 
回复 6楼 ansic
就是这个意思。但是算法还没实现。
不知道怎么实现。
2011-05-16 22:29
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
假设数组A和B。
原始的方法是先求出数组A的ascii最大值下标, 然后以此下标为界分隔成两个字符数组A和C,然后将数组A和数组B和数组C合并。缺点就是多占用了一点内存空间。 另一种就是先求最大值下标,然后通过向后移动字符串。这方法不占用额外空间,但是时间复杂度好像差一点。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-16 23:13
lcddhr
Rank: 2
等 级:论坛游民
帖 子:25
专家分:29
注 册:2011-5-18
收藏
得分:0 
#include<stdio.h>

void main()
{
 int i,j,max;
 int place_star,place_end;
 char a[100],b[20];

 gets(a);  //输入字符串a
 gets(b);  //输入字符串b

 max=0;

 for(i=0;i<strlen(a);i++)  //寻找字符串a中最大字符的下标
   if(a[max]<a[i])
     max=i;

  place_end=max+strlen(b)+1;  //把字符串中最大字符后面的字符存放到字符串a的后面 中间隔开存放字符串b的个数
  for(i=max+1;i<strlen(a);i++)
     {
      a[place_end]=a[i];
      place_end++;
      }

  place_star=max+1;  //把字符串b插入到字符串a中;
  for(i=0;i<strlen(b);i++)
       {
        a[place_star]=b[i];
        place_star++;
        }
    printf("%s",a);  //输出字符串a
        }
2011-05-20 00:55
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
程序代码:
char a[100],b[100],c[200],z,d[100];
gets(a);
gets(b);
z=a[0];
int p,i,j=0;
for(i=0;i<strlen(a);i++)
if(a[i]>z)
{z=a[i],p=i;}
for(i=p+1;i<strlen(a);i++)
d[j++]=a[i];
d[j]='\0';
c[0]='\0';
strcat(c,a);
c[p+1]='\0';
strcat(c,b);
strcat(c,d);
puts(c);
仅供参考!
2011-05-20 08:21
快速回复:这个字符串定义好长呢?最大元素后边插入字符串了
数据加载中...
 
   



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

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