输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main()
{
char c;
int letters=0,spaces=0,digits=0,others=0;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letters++;
else if(c>='0'&&c<='9')
digits++;
else if(c==' ')
spaces++;
else
others++;
}
printf("character:%d,space:%d,digit:%d,others:%d",letters,spaces,digits,others);
return 0;
}
C
3、下列程序段运行后输入“1234567890<回车>”,分析与测试它的输出结 果。(若无输出,就写“无输出”)
#include <stdio.h>
int main(){
char ch;
while((ch=getchar())=='0'){
printf("#");
}
}
C
#include<stdio.h>
int main()
{
char A,B,C, i;
for(i='X';i<='Z';i++){
if(i!='X'&&i!='Y'){
A=i;
}
}
for(i='X';i<='Z';i++){
if(i!='Z'&&i!='Y'){
B=i;
}
}
for(i='X';i<='Z';i++){
if(i!='X'&&i!='Z'){
C=i;
}
}
printf("A的对手是%c\n",A);
printf("B的对手是%c\n",B);
printf("C的对手是%c\n",C);
return 0;
}
C
有一篇文章,共有三行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
#include <stdio.h>
int main() {
char a[3][80] = {};
printf("请输入3行文字:\n");
int i, j, cont1 = 0, cont2 = 0, cont3 = 0, cont4 = 0, cont5 = 0;
for (i = 0; i < 3; i++) {
gets(a[i]);
}
for (i = 0; i < 3; i++) {
for (j = 0; a[i][j]!='\0'; j++) {
if (a[i][j] >= 'A' && a[i][j] <= 'Z') {
cont1++;
} else if (a[i][j] >= '0' && a[i][j] <= '9') {
cont2++;
} else if (a[i][j] >= 'a' && a[i][j] <= 'z') {
cont3++;
} else if (a[i][j] == ' ') {
cont4++;
} else {
cont5++;
}
}
}
printf("大写字母%d个\n小写字母%d个\n数字%d个\n空格%d个\n其他%d个\n", cont1, cont3, cont2, cont4, cont5);
return 0;
}
C
有一行电文,已按下面规律译成密码: A →Z B→Y C→X …… a→z b→y c→x …… 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,
#include <stdio.h>
#include<string.h>
int main() {
char c1[26],c2[26],a[20];
int i,j,k;
for (i=0, j='A', k='a'; i<26; c1[i]=j++, c2[i]=k++, i++);
printf("请输入密码:");
gets(a);
for(i=0;i<20;i++){
for(j=0;j<26;j++){
if(a[i]==c1[j]){
a[i]=c1[25-j];
break;
}
if(a[i]==c2[j]){
a[i]=c2[25-j];
break;
}
}
}
printf("译文:");
puts(a);
return 0;
}
C