| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1451 人关注过本帖
标题:这道题需要用指针嘛?
只看楼主 加入收藏
固执的香菇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-9-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
这道题需要用指针嘛?
各位大神,帮我看看这道题怎么写,跪求程序代码。
分别输入两个字符串,以句号“.”结束,求同时在第一个字符串和第二个字符串出现的大写字母。
搜索更多相关主题的帖子: 字符串 字母 
2016-09-23 18:06
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1744
专家分:3216
注 册:2015-12-2
收藏
得分:0 
这和求交集差不多,参照此贴:
https://bbs.bccn.net/thread-469060-1-1.html
2016-09-23 18:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
大写字母一共26个
map[26] = { 0 };
扫描第一个字符串,相应位置1
扫描第二个字符串,若相应位为1则置2
输出位值为2的字母
收到的鲜花
  • ehszt2016-09-23 20:56 送鲜花  10朵   附言:好方法!
2016-09-23 20:53
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:4 
以下是引用rjsp在2016-9-23 20:53:19的发言:

大写字母一共26个
map[26] = { 0 };
扫描第一个字符串,相应位置1
扫描第二个字符串,若相应位为1则置2
输出位值为2的字母



如果第一个字符串没有重复的大写字母出现,这个方法可取。
如果重复出现,显然是存在问题的
2016-09-23 21:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 4楼 linlulu001
有重复的字母怎么啦
2016-09-23 22:03
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
假设第一个字符串是AaAb.
那么第二个字符串无论有没有字母A都会输出。
2016-09-23 22:14
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1744
专家分:3216
注 册:2015-12-2
收藏
得分:0 
以下是引用linlulu001在2016-9-23 22:14:08的发言:

假设第一个字符串是AaAb.
那么第二个字符串无论有没有字母A都会输出。

置1,又没说加1。碰到第二个A也不会变成2。
2016-09-23 22:16
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 7楼 ehszt
原来如此,没注意到是置1。
2016-09-23 22:21
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:4 
看游戏规则楼,如果一个字符在两个字符串都多次重复出现了,那么规则到底是要输出1次还多次呢?


当然不管什么规则,针对对数据采样量这么小(只有26个字母)桶排序都是特别赞的。

-----
补充:这个算法可能也不叫桶排序,但反正就是跟桶排序类似原理,都往桶里装的。区别就是不需要排序


[此贴子已经被作者于2016-9-23 23:03编辑过]


φ(゜▽゜*)♪
2016-09-23 23:01
微生固
Rank: 2
来 自:湖北-武汉
等 级:论坛游民
帖 子:13
专家分:35
注 册:2016-9-22
收藏
得分:4 
代码如下,
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char a[100],b[100],c[100];
    int i=0,j=0,k=0;
    bool judge=true;
    printf("请输入第一个字符串\n");
    while(1)
    {
        scanf("%c",&a[i]);
        if(a[i]=='.')
            break;
        i++;
    }
    printf("请输入第二个字符串\n");
    while(1)
    {
        scanf("%c",&b[j]);
        if(b[j]=='.')
            break;
        j++;
    }   
    for(i=0;i<strlen(a);i++)
        for(j=0;j<strlen(b);j++)
            if(a[i]==b[j]&&a[i]>='A'&&a[i]<='Z')
            {
                for(int n=0;n<k;n++)
                    if(a[i]==c[n])
                        judge=false;   
                if(judge==true)
                {
                    c[k]=a[i];
                    k++;
                }                  
                judge=true;
            }                    
    for(i=0;i<k;i++)   
        printf("%c  ",c[i]);
    system("pause");
    return 0;
}
      
   
   
   
   
2016-09-24 10:42
快速回复:这道题需要用指针嘛?
数据加载中...
 
   



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

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