zoukankan      html  css  js  c++  java
  • 请编写一个函数,删除一个字符串的一部分。

    请编写一个函数,删除一个字符串的一部分,函数的原型如下:

    intdel_substr(char*str,char const *substr)

    函数首先应该判断substr是否出现在str中,如果它并未出现,函数就返回0;如果出现,函数应该把str中位于该子串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1。

    如果substr多次出现在str中,函数只删除第1次出现的子串,函数的第二个参数绝不被修改。

    注意:不应该使用任何用于操纵字符串的库函数。函数的任何地方都不应该使用下标引用。

    该题目出自《C和指针》第六章6.2题

    #include<stdio.h>  
    #include<string.h>  
    
    //判断两个字符串匹配
    char *match(char *str,char const *want)
    {
        while (*want != '')
        {
            if (*str++ != *want++)
            {
                return NULL;
            }
            return str;
        }
    }
    //删除子串函数
    int del_substr(char *str,char const *substr)
    {
        char *next;
        //保证被操作字符串不为空
        while (*str != '')
        {
            next = match(str, substr);
            if (next != NULL)
            {
                break;
            }
            str++;
        }
        //指针到达字符串终结符,说明要删除的字符串没有出现
        if (*str == '')
        {
            return 0;
        }
        //被删除字串之后的字符复制操作
        while (*str++ = *next++)
        ;
        return 1;
    }


  • 相关阅读:
    k-means聚类JAVA实例
    钓鱼站点以世界杯足球赛为饵,收集个人资料
    南桥--特殊回文数
    Oracle 数据文件管理
    hihoCoder #1142 : 三分求极值
    时间复杂度和空间复杂度[数据结构]
    poj 3635 Full Tank? ( 图上dp )
    FastQC结果详解
    毕业设计常见问题
    centos 查看USB接口的版本
  • 原文地址:https://www.cnblogs.com/raiven2008/p/4209222.html
Copyright © 2011-2022 走看看