zoukankan      html  css  js  c++  java
  • 《C和指针》章节后编程练习解答参考——6.1

    《C和指针》——6.1

    6.1

    题目:

      编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符。

    函数原型如下:

      char *find_char(char const *source, char const *chars);

    要求:

      a.不适用任何用于操纵字符串的库函数(如:strcpy strcmp等)

      b.函数中不能使用下标引用

    解答代码:

    #include <stdio.h>
    
    char *find_char(char const *source, char const *chars)
    {
        int i, j;
        if ((*source != NULL) && (*chars != NULL))
        {
            for (j=0; *(source+j) != ''; j++)
            {
                for (i=0; *(chars+i) != ''; i++)
                {
                    if (*(source+j) == *(chars+i))
                    {
                        printf("i = %d
    ", j);
                        return ((char *)(source+j));    //注:source类型为(char const *),函数类型为(char *),返回时需要进行强制类型转换
                    }
                }
            }
            return NULL;
        }
        else
            return NULL;
    }
    
    int main()
    {
        char source[] = "ABCDEB";
        char chars[] = "EF";
    
        char *p = find_char(source, chars);
    
        if (p != NULL)
        {
            printf("Find the substr at %d
    ", p-source);
        }
        else
            printf("Substr no found!");
    
        getchar();
        return 0;
    }

    注:

    1、函数中使用双层循环查询对比,外层用于source数据循环,内层用于子字符串数据循环,逐一进行对比。

    2、函数定义参数类型为(char const *)和返回值类型(char *)不一致,不能直接返回,必须进行类型强制转换((char *)(source+j))。

  • 相关阅读:
    697-数组的度
    1013-将数组分成和相等的三个部分
    linux命令基础
    Fiddler安卓抓包设置
    HTTPS协议
    HTTP协议
    TCP和UDP的区别
    TCP三次握手以及四次挥手
    OSI七层网络模型,数据传输过程解析
    jmeter常用命令(非GUI模式命令)
  • 原文地址:https://www.cnblogs.com/microxiami/p/4966818.html
Copyright © 2011-2022 走看看