注意:以下函数都包含在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. Python之文件操作:经验总结

    1.怎么判断读出来的文件是gbk还是utf-8编码 if content == u'中国'.encode('gbk'):     return 'gbk' elif content == u'中国'. ...

  2. 搭建git linux 服务器

    假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: for Ubuntu或Debian $ sudo apt-get install git for Centos 更新一下 ...

  3. pat 甲级 L3-002. 堆栈

    L3-002. 堆栈 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 大家都知道“堆栈”是一种“先进后出”的线性结构,基本操作有 ...

  4. numeric 转换为数据类型 (null) 时出现算术溢出错误

    mssql数据同步到mysql时提示错误如下: 消息 8115,级别 16,状态 14,第 1 行 将 numeric 转换为数据类型 (null) 时出现算术溢出错误 问题分析如下: 1.数据字段类 ...

  5. 快速排序Quick sort(转)

    原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序 ...

  6. python 查看帮助和变量的强制转换

    查看帮助 dir() 函数 查看对象都有哪些属性和方法 用法:把要查询的对象写入()括号中即可 print(dir([])) (查看列表的方法) 执行: C:\Python27\python.exe ...

  7. 搜狗拼音输入法LINUX版安装

    搜狗拼音输入法LINUX版官方下载: http://pinyin.sogou.com/linux/?r=pinyin 一.添加fcitx的nightlyPPA 在终端中输入: sudo add-apt ...

  8. 内存 : CL设置

    CL(CAS Latency):为CAS的延迟时间,这是纵向地址脉冲的反应时间,也是在一定频率下衡量支持不同规范的内存的重要标志之一. 内存负责向CPU提供运算所需的原始数据,而目前CPU运行速度超过 ...

  9. Process 'command 'D:\IDE\SDK\build-tools\28.0.3\aapt.exe'' finished with non-zero exit value 1问题分析解决

    当在Android Studio的XML布局文件写错属性或单词拼错时,会出现如下所列的错误,而AS编辑器又没任何提示, 再次点击下方的"Run build",也只能得到:app:p ...

  10. html table 使用总结

    html中的table是一个历史相当悠久的标签,它能够很方便的实现数据的表格展示.虽然table是个很基础的标签,但是想用好还是对css相关知识有要求的. 由于table标签中自带的属性操作起来略为麻 ...