注意:以下函数都包含在ctype.h头文件中

1.isalpha函数 用来判断得到的参数是不是字母

 #include<stdio.h>
#include<ctype.h> int main ()
{
/*
isalpha函数用来检测数值是否为大小写字母 返回值分为三种
1.大写字母,返回值为1
2.小写字母,返回值为2
3.不是字母,返回值为0
*/
char c ;
scanf("%c",&c);
int State;
State=isalpha(c);//大写字母返回1 小写字母返回2
// printf("%d",State); if(State==)
{
printf("输入的是大写字母\n");
}
else if (State==)
{
printf("输入的是小写字母\n");
}
else {
printf("sb你输入的不是字母\n");
} return ;
}

因为isalpha只能判断单个字符,感觉不是那么好用的样子 ,百度了一下它的相关资料,在百度百科词条中发现了一个利用这个函数来写的一个判断输入字母个数的程序 如下:

 #include<ctype.h>
#include<stdio.h>
int main(void)
{
char ch;
int total;
total=;//赋值
/*统计字母块*/
do
{
ch=getchar();
if(isalpha(ch)!=)
++total;
}while(ch!='.');//结束符号为.
printf("The total of letters is:%d\n",total);
return ;
}
/*运行结果*/
输入:123456我am侯云江.
输出:The total of letters is:

下面的代码,是我对上面的代码,做过了一些小的改动,比如 我将结束符号 改为换行符 这样更人性化了一些 不用输入 "." 来作为 输入的结束符号 因为\n 换行符,表示将键盘缓冲区的数据发送到程序中 也就是一次输入的结束 getchar();也会接受这个换行符 它们之间是不会影响的  在一次输入结束的同时 getchar()也会得到 \n ch=\n 后 经过while判断后 条件不满足 就可以退出循环了

 # include <stdio.h>
# include <ctype.h> int main ()
{
char ch;
int total=; //初始化 //统计输入字母数量
do{
ch=getchar();
if(isalpha(ch)!=)
{
total=total+;
}
} while(ch!='\n'); //设置字符串的结束符号为 \n 可任意设置
printf("共输入了%d个字母\n",total);
return ;
}
/*
1.用getchar() 从键盘中读入一个字符 到ch变量中
2.用if语句来判断isalpha函数返回的值 不为0的话 则是字符(大小写都有可能)total的值加1
3.判断n+1次ch的值是否 为换行符 如果是话 就终止循环 结束程序 为什么是n+1次呢?
我输入a然后回车
a传到ch中 经过isalpha判断后返回值为非0 条件成立 执行if中语句 total=1
判断ch值不为\n
\n 传入到ch中 经过isalpha函数判断为0 条件不成立 不执行if中语句 total值不变
while判断 ch的值== \n 条件不成立 终止循环 */

下面的代码是我做的测试,内容是再输入很多字符的时候 最终ch的值会是多少

 # include <stdio.h>
# include <ctype.h> int main () {
char a,b,c;
do{ a=getchar(); }while(a!='.');
printf("%c",a); return ;
}

运行结果:

由此可见 在do while循环中 你输入的最后一个字符 就为a或者ch 变量中的值 我输入的值是. 换行符也是一样 只是 换行符还有一种的一种作用就是结束输入 将键盘缓冲区中的数据放到程序中 在这里例子中也就是发送到a变量中 上个例子就是发送到ch变量中


2.isdigit函数 判断得到的参数是否为阿拉伯数字0-9

函数说明
检查参数c是否为阿拉伯数字0到9。
返回值
若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。

相关代码的联系 用isdigit函数找出一串字符串中的数字 用循环的方式 遍历数组中的每个元素 将每个元素都作为isdigit的参数

 #include<stdio.h>
#include<ctype.h>
int main()
{
char str[]="123@#FDsP[e?";
int i; /*
0.断str[x]中保存的值 不是结束符号的话 就一直循环
1.用if判断isdigit中的返回值 如果是非0 则条件成立 执行if语句中内容
2.打印对应的str[x]字符数组中的值 */
for(i=;str[i]!='\0';i++)
{
if( isdigit (str[i]) )
printf( "%c is an digit character\n",str[i] );
}
}

3.isalnum函数 传入的参数如果是字符(包含0-9阿拉伯数字+大小写字母)就返回true(!0) 否则返回 0 主要用来判断 我猜是用来判断传入的特殊符号

结合前三个函数做的一个小程序 从键盘中读入字符串 输入字符串中字母个数(大小写字母个数)和数字个数和特殊符号个数

 #include<stdio.h>
#include<ctype.h> //从键盘中读入字符串 输入字符串中字母个数(大小写字母个数)和数字个数和特殊符号个数
int main ()
{
char name[];
gets(name); //获得字符存入name字符数组中
int i,dch,xch,digit,tch;
dch=;
xch=;
tch=;
digit=;
for(i=;name[i]!=;i++)
{
if(isalpha(name[i])==) //返回值为1 为大写字母 大写字母+1
{
dch=dch+;
}
if(isalpha(name[i])==) //返回值为2 为小写字母 小写字母+1
{
xch=xch+;
}
if(isalnum(name[i])==) //返回值为0 证明值为特殊符号 不包含大小写字母和数字
{
tch=tch+;
} if(isdigit(name[i]))
{
digit=digit+;
} }
printf("你输入的字符串中有\n%d大写字母\n%d小写字母\n%d个特殊符号\n%d个数字",dch,xch,tch,digit); return ;
}

处理字符串的一些C函数的更多相关文章

  1. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  2. SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]

    SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数   --创建表格 create table aa ( UserName varchar(50 ...

  3. c/c++中与字符串处理相关的函数

    void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...

  4. Go 实现字符串相似度计算函数 Levenshtein 和 SimilarText

    [转]http://www.syyong.com/Go/Go-implements-the-string-similarity-calculation-function-Levenshtein-and ...

  5. js数组,字符串,json互相转换函数有哪些

    js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...

  6. 1. python 字符串简介与常用函数

    1. python中的字符串简介与常用函数 在python中,字符串变成了一个强大的处理工具集,他是不可变的,也就是说字符串包含字符与字符的顺序,他不可以原处修改 字符串是我们后面需要学习的稍大一点的 ...

  7. 字符串处理strcpy strcat函数的用法

    C语言函数字符串处理strcpy strcat函数的用法: 1)strcat是用来连接两个字符串的,原型是char *strcat(char *dest,char *src),作用是把src所指字符串 ...

  8. 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。

    package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...

  9. Js中常用的字符串,数组,函数扩展

    由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...

  10. c语言中字符串转数字的函数

    ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...

随机推荐

  1. PE415

    那个条件其实是个结论吧..除非全部共线就是存在一条线只经过两点.. 那就容斥一发,然后变成个传统数论题,xjb杜教筛就好了.. (最终那个式子不太好看的..)

  2. 将npm改成默认使用cnpm下载

    淘宝的cnpm下载安装的命令为 npm install -g cnpm --registry=https://registry.npm.taobao.org 但是仅仅这样是不够的,这样只有主动去下载资 ...

  3. iterator & iterable

    一. java.lang.Iterable java.util.Iterator Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调用iter ...

  4. python优雅写法

    在这篇文章中我将和大家分享一些真正有用的技巧和窍门,这些技巧和窍门你们之前可能并不知道.所以不浪费时间了,让我们直接来看看这些内容吧: 枚举 之前我们这样操作: 1 2 3 4 i = 0 for i ...

  5. 1180: [CROATIAN2009]OTOCI

    1180: [CROATIAN2009]OTOCI Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 1032  Solved: 638[Submit][ ...

  6. jquery.slider jquery滑块插件

    原文发布时间为:2011-03-08 -- 来源于本人的百度文章 [由搬家工具导入] http://jqueryui.com/demos/slider jquery滑块插件

  7. javascript屏蔽脏字

    原文发布时间为:2009-04-16 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  8. Cflow使用详解【转】

    转自:http://blog.csdn.net/hanchaoqi/article/details/40922615 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近使用cflow,根据Cf ...

  9. CentOS下Yum使用

    1. 介绍 Yum,即Yellow dog Updater Modified,是一个基于 RPM 包管理的字符前端软件包管理器:能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且 ...

  10. C语言中的基础知识变量探讨

    C语言中的变量是编程的基础,主要有四个要素:存储类型.存储大小.存储名称和存储地址. 一.变量的要素: 1.存储类型:主要表明名变量存储的特征,主要有auto.extern.static和regist ...