求兩個字符串中相同的字符(不區分大小寫)并緩存打印char *Get_str(const char *instr1, const char *instr2) //返回值為椎區內存 instr1 為 輸入第一個字符串 instr2 為輸入第二個字符串
- {
- if(instr1 == NULL || instr2 == NULL)
- {
- printf("input err.\n");
- return NULL;
- }
- int i = 0, j = 0;
- while(instr1[i]) //把字符串 instr1 字符全部轉換為 小寫
- {
- if(instr1[i] >= 'A' && instr1[i] <= 'Z')
- instr1[i] += 32;
- i++;
- }
- while(instr2[j]) //把字符串 instr2 字符全部轉換為 小寫
- {
- if(instr2[j] >= 'A' && instr2[j] <= 'Z')
- instr2[j] += 32;
- i++;
- }
- int flag = 1; //設置一個標志 如果 判斷 輸出的字符串是否有相同的如果有 變為0
- char *str = (char *)malloc(sizeof(char)*26); //設置一個輸出字符串
- int k = 0, sum = 0;
- for(i = 0; i < strlen(instr1); i++)
- {
- for(j = 0; j < strlen(instr2); j++)
- {
- if(instr1[i] == instr2[j])
- {
- flag = 1;
- for(k = 0; k < m; k++) // 循環 判斷 是否 與str內的字符相同 若不同添加 相同 不添加
- {
- if(instr1[i] == str[m])
- { flag = 0; }
- }
- if(flag)
- { str[m] = instr1[i]; m++; }
- }
- }
- }
復制代碼
char tmp;
for(i = 0; i < m - 1; i++) //快速排序
{
for(j = i + 1; j < m; j++)
{
if(str > str [j]) 升序
{ tmp = str; str = str[j]; str[j] = tmp;}
}
}
printf(“%s\n", str);
return str;
}
歡迎 參與討論 批評
|