关于字符串题组练习小结:
第一题:A - 佩蒂亚和弦乐
题目较为简单,思路也比较清晰,根据题意先将输入的两个字符串中的所有大写字母转换成小写字母,再利用循环依次判断相同位置的子没有的ascll值的大小,若相等则将一个记数变量赋值为0,并继续后面的字母比较,若首先判断出第二行小于第一行,则将记数变量赋值为1,并且结束循环,输出记数变量,若首先判断出第一行中有字母小于第二行,则将记数变量赋值为-1,斌刚结束循环,输出记数变量。
第二题:B - 字符串任务
这道题也是字符串的基本操作,先将输入的字符串中所有大写字母转换成小写字母,方便后面的删除元音字母的操作,具体代码实现如下:
if(str[i]>='A'&&str[i]<='Z')//将大写字母转换成小写字母
str[i] = str[i] + 32;
接下来删除其中的元音字母'a','e','i','o','u','y';具体代码实现如下:
if(str[i] == 'a'||str[i] == 'e'||str[i]=='i'||str[i]=='o'||str[i]=='u'||str[i] =='y')
{
for(int j=i;j<lenth;j++)//删除元音字母
{
str[j] = str[j + 1]; //删除元音字母之后所有字符的位置向前进一
}
i -=1;
}
最后输出一个' . ',再输出一个str[i]的值,以实现题目的要求。
第三题:J - 笨小猴
这道题利用到桶排的思想
char str[101]={0};
int count[26]={0};
gets(str);
int lenth = strlen(str);
for(int i=0;i<lenth;i++)
{
count[str[i] - 'a']++;//将26个字母出现的次数对应到count[0]到count[25]之中
}
接下来则是判断出现次数最多的字母和出现次数最少的字母,具体代码实现如下:
int max = count[0],min =count[0]; //认为字母a出现的次数是最多的,也是最小的
for(int i=1;i<26;i++)
{
if(count[i] == 0)
continue;
if(count[i]>max)
max = count[i];
if(count[i]<min)
min = count[i];
}
最后则是判断最大值与最小值之间的差值是否为质数,则根据相应条件输出最后结果,较易实现。