ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《算法笔记》3.6小节字符串处理问题 C: 字符串的查找删除

2021-05-26 22:00:48  阅读:169  来源: 互联网

标签:char int 小节 len 3.6 ans 字符串 delete


问题 C: 字符串的查找删除

时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。

输入

输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。

输出

删除输入的短字符串(不区分大小写)并去掉空格,输出。

样例输入

in
#include 
int main()
{

printf(" Hi ");
}

样例输出

#clude
tma()
{

prtf("Hi");
}

提示

注:将字符串中的In、IN、iN、in删除。

#include <iostream>
#include <cstring>


using namespace std;

int main() {
    char a[400];
    char delete_char[400];
    char ans[400];
    int counter = 0;
    bool flag = true;
    while (gets(a)) {
        counter++;
        int len = strlen(a);
        int len_ans = 0;
        int delete_len = strlen(delete_char);
        if (counter == 1) {
            int i = 0;
            for (i = 0; i < len; ++i) {
                if (isalpha(a[i]) and islower(a[i]))
                    a[i] -= 32;
                delete_char[i] = a[i];
            }
        } else {
            for (int i = 0; i < len; ++i) {
                if (a[i] == ' ') {
                    for (int j = i + 1; j < len; ++j) {
                        a[j - 1] = a[j];
                    }
                    a[len - 1] = '\0';
                }
            }
            for (int i = 0; i < len; ++i) {
                flag = true;
                if (len > delete_len + i) {
                    for (int j = i; j < delete_len + i; ++j) {
                        char ans_char = a[j];
                        if (islower(ans_char)) {
                            ans_char -= 32;
                        }
                        if (delete_char[j - i] != ans_char) {
                            flag = false;
                            break;
                        }
                    }
                } else
                    flag = false;
                if (flag) {
                    i = i + delete_len - 1;
                } else {
                    ans[len_ans] = a[i];
                    len_ans++;
                }
            }
            ans[len_ans] = '\0';
            puts(ans);
        }

    }
    return 0;
}

标签:char,int,小节,len,3.6,ans,字符串,delete
来源: https://blog.csdn.net/DoMoreSpeakLess/article/details/117306330

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有