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

題目描述:

寫一個函數,判斷一個字符串是否為另外一個字符串旋轉之后的字符串。

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

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

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

AABCD左旋一個字符得到ABCDA

AABCD左旋兩個字符得到BCDAA

AABCD右旋一個字符得到DAABC

思路1:

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

代碼實現(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函數和strstr函數實現(xiàn)

【1】strncat函數:
char *strncat(char *dest,const char *src,int n);
作用:把src所指 字符串 的前n個字符添加到dest結尾處(覆蓋dest結尾處的'\0')并添加'\0'
【2】strstr函數:
char *strstr(const char *arr1, const char *arr2)
返回值為char * 類型( 返回指向 str1 中第一次出現(xiàn)的 str2 的指針);如果 str2 不是 str1 的一部分,則返回空指針
代碼實現(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)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

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

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

廣告

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

成都網站建設公司