isalpha,isalpha()在C语言里怎么用
大家好,今天我将为大家揭秘isalpha和isalpha()在C语言里怎么用的奥秘,希望我的分享能给你带来新的启发和知识。
isalpha()在C语言里怎么用
如果输入字符是一个英文字母,即
a-z或A-Z,返回非零值(具体返回多少要看系统实现),否则返回0.
如下例子:
char
ch1='a';
char
ch2='Z';
char
ch3='3';
if
(isalpha(ch1))
printf("%c
is
an
alphabetic
character\n",
ch1);
else
printf("%c
is
NOT
an
alphabetic
character\n",
ch1);
if
(isalpha(ch2))
printf("%c
is
an
alphabetic
character\n",
ch2);
else
printf("%c
is
NOT
an
alphabetic
character\n",
ch2);
if
(isalpha(ch3))
printf("%c
is
an
alphabetic
character\n",
ch3);
else
printf("%c
is
NOT
an
alphabetic
character\n",
ch3);
srand就牵扯到随机数产生的知识了。当你用
rand()函数返回一个随机数时,实际上你得到的是一个
“伪”随机数,这个数字是按照一定的算法,根据一个“种子”(seed)数算出来的一串伪随机数序列中的一个,这个伪随机数序列并不是绝对随机的,当这个序列长度到一个非常非常大的N后,你会发现这个序列实际上是循环的,但是在n远小于N的时候,可以近似的认为rand()产生的数字是随机的。
伪随机数产生算法用不同的seed可以产生不同的伪随机数序列。srand就是用来设置这个seed的。你使用时可以随意设置seed,一个常用的方法是,根据系统时间来设置
seed.
c中为什么用isalpha()判断汉字是有时会判断是字母
我们先看一下函数原形:
函数:isalpha
原型:int isalpha(int ch)
用法:头文件加入#include<ctype.h>
功能:判断字符c是否为英文字母,当c为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(c)||islower(c)”做测试,返回非零值,否则返回零。
函数接受一个int类型的参数,而“名”的第二个字符是251,转换为int为-5,所以isalpha会判断为字母,我试了一下小于-1或大于257的值都会判断为字母,这可能是函数的bug吧!
解决办法是把实参强制转换为unsigned char型:
char s[3]="名";
if( isalpha(( unsigned char)s[1]))
{}
文章分享结束,isalpha和isalpha()在C语言里怎么用的答案你都知道了吗?欢迎再次光临本站哦!