• 2018/12/13


    7-29 删除字符串中的子串 (20 分)

    输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2

     

    输入格式:

    输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

     

    输出格式:

    在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

     

    输入样例:

    Tomcat is a male ccatat
    cat

     

    输出样例:

    Tom is a male

     

    8. 代码块

    #include<stdio.h>
    #include<string.h>
    
    int main(void)
    {
        char a[81];
        char b[81];
        gets(a);
        gets(b);
    
        char *p;    
        char c[81];
    
     while((p=strstr(a,b)) != NULL) //strstr 找不到返回 NULL
    {  
       *p = ''; // 指定连接下一步(连接函数)之前 a 的终止位置; 
        strcpy (c, p+strlen(b)); // strcat函数中的两个传入参数的内存地址不能重叠,所以这里用 c 当作 temp 
            strcat (a, c);
        } 
        puts(a);
    
        return 0;
    }
    

     

    >有关strstr函数:

    函数原型:
    extern char *strstr(char *str1, const char *str2);

    语法:
    * strstr(str1,str2)
    str1: 被查找目标 string expression to search.
    str2: 要查找对象 The string expression to find.

    返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

    例子:
    char str[]="1234xyz";
    char *str1=strstr(str,"34");
    cout << str1 << endl;

    显示的是: 34xyz

     

    >有关strcat函数:

    函数原型
    extern char *strcat(char *dest, const char *src);

    将两个char类型连接。
    char d[20]="GoldenGlobal"; char *s="View"; strcat(d,s);
    结果放在d中
    printf("%s",d);
    输出 d 为 GoldenGlobalView (中间无空格)
    d和s所指内存区域不可以重叠且d必须有足够的空间来容纳s的字符串。
    返回指向d的指针。

     

    >有关strcpy函数

    原型声明:
    char strcpy(char dest, const char *src);

    strcpy是一种C语言的标准库函数,strcpy把含有''结束符的字符串复制到另一个地址空间,返回值的类型为char*。

  • 相关阅读:
    业余无线电A类考试准备笔记
    关于互联网技术基层绩效管理的一些思考
    适合产品经理的十本书 From 俞军
    从敏捷开发到微服务,maybe再到中台
    Golang内存模型
    CSS中的那点事儿(一)--- CSS中的单位2
    CSS中的那点事儿(一)--- CSS中的单位1
    design.js
    model.js
    云技术相关的概念
  • 原文地址:https://www.cnblogs.com/zw431387/p/10115183.html
Copyright © 2020-2023  润新知