求两个字符串中相同的字符(不区分大小写)并缓存打印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;
}
欢迎 参与讨论 批评
|