题目
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入1,2,3的链表如下图:
返回一个数组为(3,2,1) 0<=链表长度<=10000
思路
利用gets函数获取字符串,将大写字母统一转化成小写字母,通过scanf函数输入目标字符,
再遍历字符串与其匹配,匹配成功则计数加一
算法实现
#include <stdio.h>
int main()
{
char s[1000];
gets(s);//获取字符串
char c;//目标字符
int num=0;//记录目标字符出现的次数
int len = strlen(s);//获取字符串的长度
printf("请输入目标字符:");
scanf("%c", &c);
for (int i = 0; i <= len; i++)//将大写字母统一转化成小写字母
{
if (s[i] >= 65 && s[i] <= 90)
{
s[i] = s[i] + 32;
}
}
for (int j = 0; j <= len; j++)//匹配目标字符并计数
{
if (c == s[j])
{
num++;
}
}
printf("%c出现过%d次", c, num);
return 0;
}
示例
总结
这题没有什么需要太多注意的地方,记得把字母大小写统一化就ok了。