日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

const数组,strstr,strstr,

發(fā)布時(shí)間:2024/1/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 const数组,strstr,strstr, 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

const a[5]={1,2,3,4,5};

數(shù)組變量已經(jīng)是const 的指針了,

這里的const表示數(shù)組的元素是const int;

所以必須初始化;

?

?

對(duì)于:

  • int?a[]?=?{5,?15,?34,?54,?14,?2,?52,?72};
  • int?*p?=?&a[5];
  • 則:

    p[-2]的值是?

    ?

    • A.

      編譯出錯(cuò),因?yàn)閿?shù)組下標(biāo)越界了

    • B.

      運(yùn)行出錯(cuò),因?yàn)閿?shù)組下標(biāo)越界了

    • C.

      54

    • D.

      2

    正確答案:C你錯(cuò)選為B 不會(huì)出錯(cuò)

    /**函數(shù)名: strstr
    功 能: 在串中查找指定字符串的第一次出現(xiàn)
    用 法: char *strstr(char *str1, char *str2);
    程序例:
    */

    #include <stdio.h>
    #include <string.h>

    int main()
    {
    char *str1 = "Borland International";
    char *str2 = "nation";
    char *ptr;

    ptr = strstr(str1, str2);
    printf("The substring is: %s\n", ptr);
    return 0;
    }

    ?

    /*頭文件:#include <string.h>

    strchr() 用來查找某字符在字符串中首次出現(xiàn)的位置,其原型為:
    char * strchr (const char *str, int c);

    【參數(shù)】str 為要查找的字符串,c 為要查找的字符。

    strchr() 將會(huì)找出 str 字符串中第一次出現(xiàn)的字符 c 的地址,然后將該地址返回。

    注意:字符串 str 的結(jié)束標(biāo)志 NUL 也會(huì)被納入檢索范圍,所以 str 的組后一個(gè)字符也可以被定位。

    【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。

    返回的地址是字符串在內(nèi)存中隨機(jī)分配的地址再加上你所搜索的字符在字符串位置。設(shè)字符在字符串中首次出現(xiàn)的位置為 i,那么返回的地址可以理解為 str + i。

    提示:如果希望查找某字符在字符串中最后一次出現(xiàn)的位置,可以使用 strrchr() 函數(shù)。

    【實(shí)例】查找字符5首次出現(xiàn)的位置。
    純文本復(fù)制
    */
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
    char *s = "0123456789012345678901234567890";
    char *p;
    p = strchr(s, '5');
    printf("%ld\n", s);
    printf("%ld\n", p);
    system("pause");
    return 0;
    }

    ?

    strrchr()函數(shù):
    strrchr()函數(shù)的作用是:
    ??? 查找一個(gè)字符串在另一個(gè)字符串中 末次 出現(xiàn)的位置,并返回從字符串中的這個(gè)位置起,一直到字符串結(jié)束的所有字符;
    ??? 如果未能找到指定字符,那么函數(shù)將返回False。

    char *strrchr(
    ?? char *str,
    ?? int c?
    );
    strrchr() 函數(shù)的分析?
    函數(shù)原型:extern char * strrchr (const char *s, int c)

    參數(shù)說明:s為一個(gè)字符串的指針,c為一個(gè)待查找字符。
    ????????
    所在庫(kù)名:#include <string.h>
    ??
    函數(shù)功能:查找在s字符串中最后一次出現(xiàn)字符c的位置。
    ??
    返回說明:如果str中存在字符ch,返回出現(xiàn)ch的位置的指針;否則返回NULL。

    說明:
    str?
    必要參數(shù)。指定需要進(jìn)行搜索的字符串(字符串指針)
    c?
    必要參數(shù)。指定需要查找的字符對(duì)象。如果是一個(gè)數(shù)字,那么他將搜索與這個(gè)數(shù)字對(duì)應(yīng)的ASCII值相匹配的字符


    strrchr()函數(shù)源碼:
    /* 查找在s字符串中最后一次出現(xiàn)字符c的位置 */
    char * strrchr (const char *s, int c)
    {
    ??? register const char *found, *p;

    ??? c = (unsigned char) c;

    ??? //如果查找的字符是結(jié)束符,直接用strchr 函數(shù)返回結(jié)束符號(hào)的位置。

    ??? if (c == '/0')
    ??????? return strchr (s, '/0');


    ??? //返回值(查找的字符地址)賦初值,很重要。
    ??? found = NULL;

    ??? //從當(dāng)前字符串超找字符c,并將返回指針賦給p,如果p不等于NULL,則執(zhí)行循環(huán)。

    ??? //如果p等于NULL,說明已查找整個(gè)字符串,退出循環(huán)。
    ??? while ( (p = strchr (s, c)) != NULL )
    ??? {

    ??????? //暫存查找到的字符地址。
    ??????? found = p;

    ??????? //截取已經(jīng)查找過的字符串(將返回地址p的下一個(gè)字符地址作為字符串開頭)。
    ??????? s = p + 1;
    ??? }

    ??? //如果沒有找到字符,則不會(huì)執(zhí)行循環(huán),found返回初值NULL。

    ??? //如果找到字符,返回p賦給found的指針地址。

    ??? return (char *) found;
    }

    函數(shù)舉例:
    #include <string.h>
    #include <stdio.h>

    void main()
    {
    ??? char * pCh = "www.inkcool.com";
    ??? char * pFind = strrchr(pCh, '.');
    ??? if ( pFind != NULL)
    ??? {
    ??????? printf("%s/n", pFind);??? //可以直接printf(pFind);printf("/n");左邊的表達(dá)式是合二為一的表達(dá)方法;
    ??? }
    }

    返回結(jié)果是:.com????? //注意,有'.'而不是只返回com

    轉(zhuǎn)載于:https://www.cnblogs.com/taoxiaobo-520/p/http_taoxiaobo_520_000_007.html

    總結(jié)

    以上是生活随笔為你收集整理的const数组,strstr,strstr,的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。