有兩個字符串str1和str2,寫一個函數實現在str1中查找str2的初始位置。要求不區分大小寫。

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

void main(int argc, char *argv[])
{
        int SubStrPosition(char *str1, char *str2);
        
        char *str1 = "are78fcbcdEgf";
        char *str2 = "Re";

        printf("The position is %d.\n", SubStrPosition(str1,str2));

        return;
}

/* 查找str2在str1中的位置,不存在時返回-1 */
int SubStrPosition(char *str1,char *str2)
{
        int istr1Len = 0;
        int istr2Len = 0;
        
        int i = 0;
        int j = 0;
        int iPosition = -1;

        istr1Len = strlen(str1);
        istr2Len = strlen(str2);
        if (istr2Len > istr1Len)
        {
                printf("Str2 cann't be the substring of str1.\n");
                return -1;
        }

        /* 開始尋找str2在str1中的位置,不區分大小寫 */
        for (i; i < istr1Len; i++)
        {
                for (j; j < istr2Len; j++)
                {
                        if (!((str1[i+j] == str2[j]) || (str1[i+j] == str2[j] + 32)
                                || (str1[i+j] == str2[j] - 32)))
                                break;
                }

                if (j == istr2Len)
                {
                        iPosition = i+1;
                        break;
                }
        }

        return iPosition;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章