算法思路:
代码实现:
#include
int main() { char str1[100], str2[100]; int count[26] = {0}, similar = 0;
printf("输入两个字符串:\n");
fgets(str1, 100, stdin);
fgets(str2, 100, stdin);
for (int i = 0; i < strlen(str1); i++)
{
if (str1[i] >= 'a' && str1[i] <= 'z')
count[str1[i] - 'a']++;
}
for (int i = 0; i < strlen(str2); i++)
{
if (str2[i] >= 'a' && str2[i] <= 'z')
{
if (count[str2[i] - 'a'] > 0)
{
similar++;
count[str2[i] - 'a']--;
}
}
}
printf("相似字母的数量为:%d\n", similar);
return 0;
}
这个程序的输出结果为:
输入两个字符串: hello world hello
相似字母的数量为:4
该程序对两个字符串中的小写字母进行了计数,如果两个字符串中同时出现了某个字母,那么该字母的计数器将被加一并且在第二个字符串中将不再被计算。最后统计计数器大于等于2的字母个数即为相似字母的数量。