| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:关于递规的问题求教大神们
只看楼主 加入收藏
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:6 
关于递规的问题求教大神们
请问A翻译为a,B翻译为tAdA其中A也要翻译为a如何写一个函数进行递规调用进行翻译实现我输入一个字符串ABab翻译为atadaab
搜索更多相关主题的帖子: 翻译 字符串 如何 
2012-10-22 10:17
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
收藏
得分:0 
求助!急求
2012-10-22 10:20
weiweizhou
Rank: 1
等 级:新手上路
帖 子:3
专家分:6
注 册:2012-10-20
收藏
得分:2 
void trans(char c)
    {
      char a[5]={'a','t','d','a'};
     int i;
        if(c=='A')
            printf("a");
else if(c=='B')
           for(i=0;i<4;i++)
               trans(a[i]);
else
      printf("%c",c);
}
2012-10-22 10:55
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
收藏
得分:0 
回复 3楼 weiweizhou
你好!如果我这个题目额规则不局限于AB的规则,而是每次你来的字符我在相应的文件中找到它和它对应的翻译内容,然后进行如此的递规翻译应该怎么写呢?!也就是说不能像你那样把具体内容列出来
2012-10-22 11:24
heishu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:42
专家分:131
注 册:2012-9-7
收藏
得分:3 
程序代码:
#include<stdio.h>
char b[100];
char c[]="tAdA";

void zhuanhuan(char *p)
{ int i=0;

 static int k;
    while(p[i]!='\0')
    {
        if(p[i]=='B')
zhuanhuan(c);
    else   
    {   
    if(p[i]=='A')
    {   
        b[k]=p[i]+32;
    printf("%c",b[k]);
    }
    else
    {   
        b[k]=p[i];
    printf("%c",b[k]);
    }
    }
    ++k;
    ++i;
    }



}
void main()
{
    char a[50];
    scanf("%s",a);
    zhuanhuan(a);
}

[qq]1402050187[/qq]
2012-10-22 14:39
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
收藏
得分:0 
回复 5楼 heishu
你好!我的意思是说假如现在给你一个链表L每个节点有两个项目,char      ch,char       s[10],该链表是从文件中读取的翻译规则,其中ch对应的翻译内容就是s[10]的内容,例如A对应sae,B对应tAdA的时候就应该递规调用直到翻译到tsaedsae
2012-10-22 15:20
heishu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:42
专家分:131
注 册:2012-9-7
收藏
得分:0 
程序代码:
你的意思我明白,我做的只是一种情况。但其他的思路是一样的。
只要匹配链表中的字符就行了。假如,建立链表l,(从文件中读取也是一样的)
就可以这样判断while(p[i]!='\0')
    {
        if(p[i]==l.ch)
zhuanhuan(l.s);
    else  
    {  
    if(p[i]==l.ch)
    {  
       //替换的代码
    printf("%c",b[k]);
    }
    else
    {  
        b[k]=p[i];
    printf("%c",b[k]);
    }
    }
    ++k;
    ++i;
    }



[qq]1402050187[/qq]
2012-10-22 16:22
快速回复:关于递规的问题求教大神们
数据加载中...
 
   



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

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