| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1583 人关注过本帖
标题:字符串置换
只看楼主 加入收藏
浅暗花璃
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2016-3-31
结帖率:77.78%
收藏
已结贴  问题点数:14 回复次数:7 
字符串置换
#include <stdio.h>
void main()
{
    char a[100],b[100],c[100];
    int i,j,k,m,n,s;
    m=0;
    n=0;s=0;
   
    gets(a);
    gets(b);
    gets(c);
    m=strlen(a);
    n=strlen(b);
    s=strlen(c);
   
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            for(k=0;k<s;k++)
               
                if(a[i]==b[j]&&c[k]!='\0')
                    
                    for(k=0;;k++)
                    {    a[i]=c[k];
                    
                    i++;}
        }
    }
//    for(i=0;i<50;i++)
   
    printf("%s",a);
   
}
比如输入a : abcd   b  : bc   c:stf
输出astfd
怎么运行不出来啊

[此贴子已经被作者于2016-4-12 12:53编辑过]

搜索更多相关主题的帖子: include 字符串 
2016-04-12 12:49
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
你要讲清楚你要实现什么目的?

   唯实惟新 至诚致志
2016-04-12 13:21
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:4 
没看你的代码
我想说 置换的时候 得先在 字符串A里面 增加或删减字符
留出刚刚好能设置新字符串的位置
再设置新字符
比如
a : abcd   b  : bc   c:stf
要先把 abcd 修改为 abcdd 再把中间3个字符替换为 字符串c的内容
就能得到 astfd

再比如
a : abcd   b  : bc   c:s
这时候 得先把 字符串A 删减为 abd
再把中间的字符替换为s
得到 asd

https://zh.
2016-04-12 13:26
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
一步一步实现 不要指望一口气吃成胖子
先写一个添删字符串的函数
再写一个把c的内容写入a的函数

https://zh.
2016-04-12 13:27
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:4 
置换的条件是什么?
把a中的b置换成c?

程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
    char a[100], b[100], c[100],*d;
    int i, j, k, m, n, s;
    m = 0;
    n = 0; s = 0;

    gets(a);
    gets(b);
    gets(c);
    m = strlen(a);
    n = strlen(b);
    s = strlen(c);

    d = strstr(a, b);
    
    strncpy(b, d + n, strlen(d) + 1);
    strncpy(d, c, strlen(c));
    strncpy(d + s, b, strlen(b) + 1);    

    printf("%s\n", a);

}
2016-04-12 13:29
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:4 
for(k=0;;k++)
                     {    a[i]=c[k];
                     
                     i++;}
         }
     }

你这个是个死循环吧

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-04-12 22:04
浅暗花璃
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2016-3-31
收藏
得分:0 
#include <stdio.h>
#include <string.h>

void main()
{
    char a[100],b[100],c[100];
    int i=0,j=0,k=0,t=0,m=0,n=0,s=0,q=0;
    gets(a);
    gets(b);
    gets(c);
    m=strlen(a);
    n=strlen(b);
    s=strlen(c);
    t=s-n;
   
    for (i=0;i<m;i++)  
    {  
        
            if (a[i]==b[0])
            {q=i;
              for (i;i<m+s;i++)
                 a[i+s]=a[i+n-1];
                 for(k=0;k<s;k++,i++)
                     a[i]=c[k];

               
            
            }
    }
    a[m+s]='\0';
    puts(a);
            }
改成这样不知道移动时候怎么移动了
2016-04-14 23:02
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
回复 7楼 浅暗花璃
#include <stdio.h>
 #include <string.h>

 void main()
 {
     char a[100],b[100],c[100];
     int i=0,j=0,k=0,t=0,m=0,n=0,s=0,q=0;
     gets(a);
     gets(b);
     gets(c);
     m=strlen(a);
     n=strlen(b);
     s=strlen(c);
     t=s-n;
     

     for (i=0;i<m;i++)
     {

             if (a[i]==b[0])
             {q=i;
               for (;i<s-n+1;i++)
                  a[i+s]=a[i+n];
                  
                  i=q;
                  for(k=0;k<s;k++,i++)
                      a[i]=c[k];



             }
     }
     a[m+s]='\0';
     puts(a);
             }

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-04-15 06:30
快速回复:字符串置换
数据加载中...
 
   



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

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