【C語言】判斷一個(gè)字符串是否為另外一個(gè)字符串旋轉(zhuǎn)之后的字符串-創(chuàng)新互聯(lián)

題目描述:

寫一個(gè)函數(shù),判斷一個(gè)字符串是否為另外一個(gè)字符串旋轉(zhuǎn)之后的字符串。

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括麻栗坡網(wǎng)站建設(shè)、麻栗坡網(wǎng)站制作、麻栗坡網(wǎng)頁制作以及麻栗坡網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,麻栗坡網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到麻栗坡省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

例如:給定s1 =AABCD和s2 = BCDAA,返回1

給定s1=abcd和s2=ACBD,返回0.

AABCD左旋一個(gè)字符得到ABCDA

AABCD左旋兩個(gè)字符得到BCDAA

AABCD右旋一個(gè)字符得到DAABC

思路1:

將s1左旋一個(gè)字符后與s2進(jìn)行比較,重復(fù)上述步驟,若有相等的情況則返回1,否則返回0.

代碼實(shí)現(xiàn):
#include#include
void left_move(char* arr, int k)
{
    int i = 0;
    int len = strlen(arr);
    for (i = 0; i< k; i++)
    {
        int j = 0;
        char tmp = arr[0];
        for (j = 0; j< len - 1; j++)
        {
            arr[j] = arr[j + 1];
        }
        arr[j] = tmp;
    }
}
int to_find(char* arr1, char* arr2)
{
    int len1 = strlen(arr1);
    int len2 = strlen(arr2);
    if (len1 != len2)
        return 0;
    int i = 0;
    while (i< len1)
    {
        left_move(arr1, 1);
        if (strcmp(arr1, arr2) == 0)
            return 1;
        i++;
    }
    return 0;
}
int main()
{
    char arr1[20] = "hello";
    char arr2[] = "lohel";
    int ret = to_find(arr1, arr2);
    if (ret == 1)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}

思路2:

通過使用strncat函數(shù)和strstr函數(shù)實(shí)現(xiàn)

【1】strncat函數(shù):
char *strncat(char *dest,const char *src,int n);
作用:把src所指 字符串 的前n個(gè)字符添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的'\0')并添加'\0'
【2】strstr函數(shù):
char *strstr(const char *arr1, const char *arr2)
返回值為char * 類型( 返回指向 str1 中第一次出現(xiàn)的 str2 的指針);如果 str2 不是 str1 的一部分,則返回空指針
代碼實(shí)現(xiàn):
#includeint to_find(char* arr1, char* arr2)
{
    int len1 = strlen(arr1);
    int len2 = strlen(arr2);
    if (len1 != len2)
        return 0;
    strncat(arr1, arr1, len1);
    if (strstr(arr1, arr2) == NULL)
        return 0;
    else
        return 1;
}
int main()
{
    char arr1[20] = "hello";
    char arr2[] = "lohel";
    int ret=to_find(arr1, arr2);
    if (ret == 1)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章題目:【C語言】判斷一個(gè)字符串是否為另外一個(gè)字符串旋轉(zhuǎn)之后的字符串-創(chuàng)新互聯(lián)
本文來源:http://muchs.cn/article32/cesisc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)做網(wǎng)站、商城網(wǎng)站App開發(fā)網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司