首页 > 其他分享 >PTA:滤字符

PTA:滤字符

时间:2024-03-28 22:29:04浏览次数:20  
标签:p2 字符 p1 dlen PTA char 字符串

以指针的方式,将某个字符串中出现的特定字符删去,然后输出新的字符串。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试数据输入一个字符串s和一个非空格字符t。其中s的长度不超过100,且只包含英文字母。

输出格式:

对于每组测试,将删掉t后新得到的字串输出。如果串被删空,则输出NULL

输入样例:

2
eeidliecielpvu i
ecdssnepffnofdoenci e

输出样例:

eedlecelpvu
cdssnpffnofdonci

 思路:本题可以分别定义两个char*类型的指针p1,p2指向原字符串s然后用p1指针去遍历s字符串。

当还没有指向要删除的字符串时,则将p1所指向的内容复制给p2,注意此时p2指针要向下移动一个位置;

当遇到要删除的字符时,只需将dlen加1。

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d", &n);
    getchar();//吸收回车
    char s[100];
    char t;
    
    while(n--)//多次输入
    {
        scanf("%s %c", s, &t);
        char* p1 = s;
        char* p2 = s;
        int dlen = 0;//dlen为删掉的字符数
        int len = strlen(s);//len为字符串s的长度
        while(*p1 != '\0')//用p1指正去遍历其指向的s数组
        {
            if(*p1 != t)
            {
                *p2 = *p1;
                p2++;
            }
            else//p1所指向的字符是要删除的字符时
            {
                dlen++;
            }
            p1++;
        }
        *p2 = *p1;//这里是将最后p1所指向的'\0'赋值给p2
        if(dlen >= len)//删除的字符数大于等于原字符串长度
        {
            printf("NULL\n");
        }
        else
        {
            printf("%s\n", s);
        }
    }
    return 0;
}

标签:p2,字符,p1,dlen,PTA,char,字符串
From: https://blog.csdn.net/weixin_44190161/article/details/137028283

相关文章

  • 多层JSON字符串对象的差异化比较
    importcn.hutool.core.util.ObjUtil;importcn.hutool.core.util.StrUtil;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.node.ObjectNode;importlombok.Data;importl......
  • C++ 字符串完全指南:学习基础知识到掌握高级应用技巧
    C++字符串字符串用于存储文本。一个字符串变量包含由双引号括起来的一组字符:示例创建一个string类型的变量并为其赋值:stringgreeting="Hello";C++字符串连接字符串连接可以使用+运算符来实现,生成一个新的字符串。示例:stringfirstName="John";stringlastN......
  • sed教程_使用sed命令向行尾添加字符(附sed元字符集)
    sed教程_使用sed命令向行尾添加字符(附sed元字符集)sed是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。sed元字符集:^锚定行的开始,如:/^sed/匹配所有以sed开头的行。$锚定行的......
  • 【感悟《剑指offer》典型编程题的极练之路】02字符串篇!
    ​                                                                 个人主页:秋风起,再归来~                                        ......
  • 【性能优化】 【回溯】 【字符串】1307. 口算难题
    作者推荐视频算法专题本文涉及知识点数学回溯字符串性能优化LeetCode1307.口算难题给你一个方程,左边用words表示,右边用result表示。你需要根据以下规则检查方程是否可解:每个字符都会被解码成一位数字(0-9)。每对不同的字符必须映射到不同的数字。每个word......
  • Python 字符串转为字典的两种常用方式(接口交互时)
    结论:在做接口时,请求、响应信息,必须要用json格式 原因:常规的字符串转为字典有两种方式,但两种方式都存在一定的问题:1、ast.literal_eval()(包含eval等类型方法)问题1:安全性,(literal_eval安全性好一些,eval不安全)问题2:需要将字符串中的 true false  null  =》 True......
  • (55/60)两个字符串的删除操作、编辑距离
    两个字符串的删除操作leetcode:583.两个字符串的删除操作动态规划思路先求最长子序长度然后计算两个原字符串离最长子序长度差多少。代码实现classSolution{public:/*(之前搞错了)最长子序长度word[0:i-1]和word2[0:j-1]的最长子序长dp[i][j]if(word1[i-1]==wo......
  • 08天【代码随想录算法训练营34期】第四章 字符串part02(KMP)
    KMP算法解决字符串匹配问题文本串aabaabaaf模式串aabaaf问:模式串是否在文本串中出现过?1)暴力解法,ptr指向文本串index0,遍历一遍发现不匹配,ptr再移向index1,遍历……依次重复,直到ptr指向32)KMP算法,ptr指向文本串index0,遍历到f发现不匹配,由于“aa”在字符串中index3和4时也出现......
  • shell变量内字符处理${}
    1.判断变量是否存在不存在则赋值#如果变量不存在,则赋值4096mem_size_MB=${mem_size_MB:-4096}2.变量值从后往前字符截取#取变量值后12个字符QoS=000000000000$(echo"1024*$4"|bc) NIC_QoS=aaaaaaaa-aaaa-aaaa-aaaa-${QoS:-12}  3.变量值从前往后截取字符串取......
  • 统计字母数字和特殊字符的个数
    源程序:print("请输入一串字符(包含大小写字母、数字和其他字符):")str1=input()upp_num=0low_num=0digit=0other=0foriinstr1:if"a"<=i<="z":low_num+=1elif"A"<=i<="Z":upp_num+=......