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;
    }


  • 相关阅读:
    python knn自我实践
    NumPy常用函数总结
    Max Sum
    A Mathematical Curiosity
    设计模式 策略模式 以角色游戏为背景
    背包问题
    搬寝室 hdu
    实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
    Android 面试精华题目总结
    Java自定义比较器Comparator
  • 原文地址:https://www.cnblogs.com/raiven2008/p/4209222.html
Copyright © 2011-2022 走看看