大小写转换:就是加减32
字符统计:
? ? ? 一、--1统计字母个数??
? ? ? ? ? ?? --2统计数字个数?
? ? ? ? ?? ??--3统计空格个数
? ? ? ? ? ???--4其他?
? ? ? ? ? ? ? ? ? 以上无非就是求计数器个数,分别设置字母个数a=0、数字个数b=0、空格个数c=0、其他d=0
? ? ?二、统计各字母出现的次数
? ? ? ? ?‘A’--'Z' 26个字母需要设置26个计数器这时需要设置一个数组a[i]
回文数是2020 0202
?输入一个字符串:
while ((ch = getchar()) != '\n') {
对ch进行判断
}
代码:
int main() {
char str[10];
int i = 0, n = 0;
while ((str[i++] = getchar()) != '\n') {
if (str[i - 1] >= '0' && str[i - 1] <= '9')
n++;
}
printf("%d", n);
return 0;
}
运行结果:
(1)数值型数组可以逆序,字符型数组(字符串也可以逆序)同样也可以逆序。
(2)数值或字符串:
? ? ?--n个数(字符)要交换n/2次
? ? --a[i]与a[n-i-1]交换
代码:
int main() {
char s[80], t;
int n, i, j;
gets(s);
n = strlen(s);
for (i = 0; i < n / 2; i++) {
t = s[i]; s[i] = s[n - i - 1]; s[n - i - 1] = t;
puts(s);
return 0;
}
}
运行结果:
(1)正着读倒着读都是一样的,如20222202
(2)字符的个数要比较n/2次
参考代码:
int main() {
char s[20];
int n, i;
gets(s);
n = strlen(s);
for (i = 0; i < n / 2; i++)
if (s[i] != s[n - i - 1])break;
if (i >= n / 2)printf("是回文数");//站岗条件
//有n/2和break两种情况跳过来需要判断一下
//找n/2的反条件就是i>=n/2
else printf("不是回文数");
return 0;
}
运行结果:
以上仅供参考。