首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字母计数有关问题

2014-01-17 
字母计数问题编写一个程序,如果输入的是字母,则报到字母在字母表的第几个位置,比如,c在字母中是第3个位置。

字母计数问题
编写一个程序,如果输入的是字母,则报到字母在字母表的第几个位置,比如,c在字母中是第3个位置。
不论大小写。
# include "stdio.h"

void  f(void)
{
int  pos=0, len=0;
char a ='a', z ='z';
char A ='A', Z ='Z';
char b;
scanf("%c", &b);
if(b>=a && b<=z)
{
printf("您输入的是个小写字母!");
    for( ; a<=b; a++, pos++);
printf("\n该字母在字母表中处于第的位置是: %d\n", pos);
}
else  if(b>=A && b<=Z)
{
        printf("您输入的是个大写字母!");
for( ; A<=b; A++, len++);
printf("\n该字母在字母表中处于的位置是: %d\n", len);
}
else
printf("您输入的不是字母.");
return;
}

int  main(void)
{
f();
return  0;
}
有没有一个公式直接推算出字母在字母表中的位置,而不用for循环,想2天了就是想不出来
[解决办法]
先判断是大写还是小写,然后再减去'A'或'a',
然后再加上'A'或'a'的固定位置。不用循环
[解决办法]
if(x >= 'a' && x <= 'z')  // 小写
    printf("x在第%d的位置\n" ,x-'a'+1);  // x所在位置
else if(x >= 'A' && x <= 'Z')  // 大写
    printf("x在第%d的位置\n" ,x-'A'+1);  // x所在位置

[解决办法]
比如说输入字母


char b;
char index;
char *pUp;
scanf("%c", &b);

if(b < 'a')
{
  b += 0x20;
  pUp = "大";
}
else
{
  pUp = "小";
}

index = b - 'a' + 1;
if(index >= 1 && ret <= 26)
{
  printf("你输入的是%s写字母\n该字母在字母表中处于的位置是:%d\n", pUp, index);
}
else
{
  printf("你输入的不是字母");
}

热点排行