日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c語言strrchr函數(shù)
strrchr函數(shù)用于在字符串中查找指定字符的最后一次出現(xiàn),并返回指向該字符的指針。

C語言中的strchr函數(shù)是一個非常實用的字符串處理函數(shù),它用于在一個字符串中查找指定字符的第一個出現(xiàn)位置,如果找到了指定字符,那么它會返回一個指向該字符的指針;如果沒有找到,那么它會返回NULL,strchr函數(shù)的原型如下:

創(chuàng)新互聯(lián)公司是一家專業(yè)提供略陽企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計制作、網(wǎng)站建設、H5建站、小程序制作等業(yè)務。10年已為略陽眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。

char *strchr(const char *str, int c);

str是要搜索的字符串,c是要查找的字符,這個函數(shù)的參數(shù)都是以常量字符指針的形式傳遞的,這意味著我們不能直接修改這些字符串。

下面我們來詳細介紹一下strchr函數(shù)的用法:

1、基本用法

include 
include 
int main() {
    char str[] = "Hello, world!";
    char ch = 'o';
    char *result = strchr(str, ch);
    if (result != NULL) {
        printf("找到了字符 '%c',它在字符串中的位置是:%ld
", ch, result str);
    } else {
        printf("沒有找到字符 '%c'
", ch);
    }
    return 0;
}

在這個例子中,我們在字符串str中查找字符'o',并將結(jié)果存儲在result指針中,如果找到了字符'o',那么我們就輸出它在字符串中的位置;如果沒有找到,那么我們就輸出一個提示信息。

2、跳過空格和制表符

有時候我們需要在字符串中查找的字符可能包含空格或制表符等特殊字符,這時我們可以使用t表示制表符,使用s表示空格或空白字符。

include 
include 
int main() {
    char str[] = "Hello, world!";
    char ch = 't'; // 或者 ' ' 或者 's'
    char *result = strchr(str, ch);
    if (result != NULL) {
        printf("找到了字符 '%c',它在字符串中的位置是:%ld
", ch, result str);
    } else {
        printf("沒有找到字符 '%c'
", ch);
    }
    return 0;
}

3、從字符串的任意位置開始查找

有時候我們需要從字符串的某個特定位置開始查找,這時我們可以在調(diào)用strchr函數(shù)之前先計算出要查找的字符在該位置之前的偏移量。

include 
include 
include 
int main() {
    char str[] = "Hello, world!";
    int pos = strcspn(str, " t"); // 計算出第一個空格或制表符的位置(不包括空格或制表符)
    int offset = pos + 1; // 從第一個空格或制表符之后的位置開始查找(偏移量為1)
    char ch = 'o'; // 要查找的字符
    char *result = strchr(str + offset, ch); // 從偏移量后的位置開始查找字符'o'
    if (result != NULL) {
        printf("找到了字符 '%c',它在字符串中的位置是:%ld(從第%d個字符開始)
", ch, result str + offset, pos + offset + 1); // 注意這里的result需要加上偏移量才能得到正確的結(jié)果位置
    } else {
        printf("沒有找到字符 '%c'(從第%d個字符開始)
", ch, pos + offset + 1); // 注意這里的pos + offset + 1表示從第二個字符開始算起的位置(因為pos已經(jīng)計算過了)
    }
    return 0;
}

4、結(jié)合其他函數(shù)使用

有時候我們需要結(jié)合其他字符串處理函數(shù)來實現(xiàn)更復雜的功能,我們可以使用strchr函數(shù)和strlen函數(shù)一起找出一個字符串中最短的連續(xù)重復子串,具體實現(xiàn)如下:

include 
include 
include 
include  // 為了使用fabsf函數(shù)(浮點數(shù)版本的abs函數(shù))和ceilf函數(shù)(向上取整)兩個輔助函數(shù),這里導入了頭文件(注意:頭文件只適用于C99標準及以后的編譯器)
define MAX_REPEAT_SIZE (100) // 為了避免重復子串過長導致的內(nèi)存溢出,我們可以設置一個最大重復子串長度限制(這里設為100)
define MIN_REPEAT_SIZE (3) // 為了避免重復子串過短而無法滿足需求,我們可以設置一個最小重復子串長度限制(這里設為3) // 注意:這里的MIN_REPEAT_SIZE應該大于等于MAX_REPEAT_SIZE/2+1,這樣才能保證至少有一個長度為MAX_REPEAT_SIZE/2的重復子串存在(否則可能會出現(xiàn)找不到重復子串的情況) // 如果不需要檢查是否存在滿足條件的重復子串,可以將MIN_REPEAT_SIZE定義為MAX_REPEAT_SIZE/2+1或其他合適的值,但是為了確保代碼的健壯性,建議將其設置為大于等于MAX_REPEAT_SIZE/2+1的值。// 注意:這里的MIN_REPEAT_SIZE應該大于等于MAX_REPEAT_SIZE/2+1,這樣才能保證至少有一個長度為MAX_REPEAT_SIZE/2的重復子串存在(否則可能會出現(xiàn)找不到重復子串的情況) // 如果不需要檢查是否存在滿足條件的重復子串,可以將MIN_REPEAT_SIZE定義為MAX_REPEAT_SIZE/2+1或其他合適的值,但是為了確保代碼的健壯性,建議將其設置為大于等于MAX_REPEAT_SIZE/2+1的值。// 注意:這里的MIN_REPEAT_SIZE應該大于等于MAX_REPEAT_SIZE/2+1,這樣才能保證至少有一個長度為MAX_REPEAT_SIZE/2的重復子串存在(否則可能會出現(xiàn)找不到重復子串的情況) // 如果不需要檢查是否存在滿足條件的重復子串,可以將MIN_REPEAT_SIZE定義為MAX_REPEAT_SIZE/2+1或其他合適的值,但是為了確保代碼的健壯性,建議將其設置為大于等于MAX_REPEAT_SIZE/2+1的值。// 注意:這里的MIN_REPEAT_SIZE應該大于等于MAX_REPEAT_SIZE/2+1,這樣才能保證至少有一個長度為MAX_REPEAT_SIZE/2的重復子串存在(否則可能會出現(xiàn)找不到重復子串的情況) // 如果不需要檢查是否存在滿足條件的重復子串,可以將MIN_REPEAT_SIZE定義為MAX_REPEAT_SIZE/2+1或其他合適的值,但是為了確保代碼的健壯性,建議將其設置為大于等于MAX_REPAT

網(wǎng)站標題:c語言strrchr函數(shù)
新聞來源:http://m.5511xx.com/article/cdsgdpe.html