标题:遇见特定字符串就输出一句话
只看楼主
liuyawen44
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-30
结帖率:75%
已结贴  问题点数:10 回复次数:3 
遇见特定字符串就输出一句话
比如遇见字符串中 遇见子字符串problem, 就输出bluefly。并且不区分大小写。。
输入
123problem123124promblem,
输出
bluefly
bluefly

这应该怎么实现。。求解答
搜索更多相关主题的帖子: 区分大小写 problem 字符串 
2015-01-11 21:57
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:5 
程序代码:
#include <stdio.h>

int main(void) {
    char ch, a[] = "problem", b[] = "bluefly", *p = a;

    while((scanf("%c", &ch)) != EOF && ch != '\n') {
        if(*p == ch) p++;
        if(*p == '\0') {
            puts(b);
            p = a;
        }
    }

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-01-11 22:24
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
得分:5 
额   刚开始以为是替换相应的字符,就写了一个小程序,顺便揣测了一下楼上的,没想到竟然是我把题目看错了....
楼上的   我对不起你啊   在这里向你说句对不起啊
既然写了 还是发一下吧  也对得起自己的“冻”手。
#include <stdio.h>
#include<string.h>

void main()
{
    char  a[] = "problem", b[] = "bluefly";
    char  str[100];
    int i,j;
    puts("请输入字符串:\n");
    gets(str);
    for (i = 0; i <(  strlen(str) - 6 ); i++)
    {
        if (str[i] == a[0] || str[i] == a[0] - 32 )
        {
            int k = 0;
            for (j = 1; j < 7; j++)
            {
                if (str[i + j] == a[j] || str[i+j] == a[j] - 32 )
                    k++;
            }
            if ( 6 == k)
            {
                for (j = 0; j < 7; j++)
                    str[i + j] = b[j];
                i = i + 6;
            }
        }
    }
    puts(str);
    return ;
}
2015-01-12 00:33
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
得分:0 
额   刚开始以为是替换相应的字符,就写了一个小程序,顺便揣测了一下楼上的,没想到竟然是我把题目看错了....
楼上的   我对不起你啊   在这里向你说句对不起啊
既然写了 还是发一下吧  也对得起自己的“冻”手。
#include <stdio.h>
#include<string.h>

void main()
{
    char  a[] = "problem", b[] = "bluefly";
    char  str[100];
    int i,j;
    puts("请输入字符串:\n");
    gets(str);
    for (i = 0; i <(  strlen(str) - 6 ); i++)
    {
        if (str[i] == a[0] || str[i] == a[0] - 32 )
        {
            int k = 0;
            for (j = 1; j < 7; j++)
            {
                if (str[i + j] == a[j] || str[i+j] == a[j] - 32 )
                    k++;
            }
            if ( 6 == k)
            {
                for (j = 0; j < 7; j++)
                    str[i + j] = b[j];
                i = i + 6;
            }
        }
    }
    puts(str);
    return ;
}
2015-01-12 00:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440977-1-1.html




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

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