随笔 - 56, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

串和字符函数(一)

注意: 
1、字符函数要求的头部文件是<ctype.h>
2、C语言对数组操作不进行边界检查,数组发生溢出时,将导致程序瘫痪。
下面是介绍的函数:
①isalnum
int isalnum(int ch);
功能:如果ch是字符或数字,那么函数返回非零值,否则返回零值。
例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getc(stdin);
11        if(ch=='.')break;
12        if(isalnum(ch))
13        printf("%c is alphanumeric\n",ch);
14    }

15
16    return 0;
17}
当你输入字符或字符串或数字时显示为alphanumeric,其他字符跳过,例如显示结果为:
 1y
 2is alphanumeric
 32
 42 is alphanumeric
 53
 63 is alphanumeric
 7you
 8is alphanumeric
 9is alphanumeric
10is alphanumeric
11;
12'
13\
141
151 is alphanumeric
16.
②isalpha
int isalpha(ch);
功能:当ch内容是字母(大写小写),那么函数返回非零值;否则返回零值。例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(isalpha(ch))
13        printf("%c is a letter\n",ch);
14    }

15
16    return 0;
17}
输入字母或数字或符号,显示结果为:
 11
 22
 3a
 4is a letter
 5A
 6is a letter
 7;
 8\
 9'
10,
11.
③isblank
int isblank(int ch);
功能:在英语中,空字符就是空格和水平制表符,此函数可以检测空字符,返回非零值;如果非空字符,那么返回零值,例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(isblank(ch))
13        printf("%c is a word separator\n",ch);
14    }

15
16    return 0;
17}
下面是检测的结果:
 1
 2
 3  is a word separator
 4
 5         is a word separator
 6
 7
 8
 9
10         is a word separator
11you can finish it.
12  is a word separator
13  is a word separator
14  is a word separator
此程序能够检查每个读自stdin的字符,并报告各个单词的字符数。
④iscntrl
int iscontrl(int ch);
功能:当ch为0到0x1F之间或0x7F(DEL)时(具体可以查看另一篇转载过来的ASCII表的文章),函数iscntrl()返回非零值;否则返回零值。例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(iscntrl(ch))
13        printf("%c is a word separator\n",ch);
14    }

15
16    return 0;
17}
例如输入结果显示为(如按下ENTER键):
1
2
3 is a word separator
4a
5
6 is a word separator
⑤isdigit
int isdigit(int ch);
当ch为数字时(0到9),函数返回非零值;否则,返回零值。例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(isdigit(ch))
13        printf("%c is a digit\n",ch);
14    }

15
16    return 0;
17}
显示结果为:
11
21 is a digit
32
42 is a digit
5a
6C
75
85 is a digit
⑥isgraph
int isgraph(int ch);
如果ch为除空格之外的可打印字符,函数返回非零值;否则返回零值。对于ASCII环境,可打印字符是0x21到0x7E范围内的值。
例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(isgraph(ch))
13        printf("%c is printable.\n",ch);
14    }

15
16    return 0;
17}
显示结果为:
1you
2is printable.
3is printable.
4is printable.
51
61 is printable.
7
8
其中,第7行输入空格然会回车,结果显示在第8行(空格不可打印,所以没内容)。
⑧isprint
int isprint(int ch);
功能跟isgraph一样,只是可打印字符含空格。
例如显示结果为:
1
2  is printable.
⑨islower
int islower(int ch);
功能:如果ch为小写字母,函数返回非零值;否则返回零值。
⑩ispunct
int ispunct(int ch);
功能:如果ch为标点符号,函数返回非零值;否则,返回零值。这里所说的标点符号指既不是字母数字、也不是空格的所有的打印字符。
例如:
 1#include<stdio.h>
 2#include<ctype.h>
 3
 4int main(void)
 5{
 6    char ch;
 7
 8    for(;;)
 9    {
10        ch=getchar();
11        if(ch=='.')break;
12        if(ispunct(ch))
13        printf("%c is a punctuation.\n",ch);
14    }

15
16    return 0;
17}
显示结果为:
 1'
 2' is a punctuation.
 3;
 4is a punctuation.
 5\
 6is a punctuation.
 7a
 8s
 9A
10,
11is a punctuation.

posted on 2010-09-22 21:12 八路 阅读(215) 评论(0)  编辑 收藏 引用 所属分类: C语言函数大全


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理