处理字符串的一些C函数
注意:以下函数都包含在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函数的更多相关文章
- SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名) 例如:select convert(int,'3')2. cast(字段名 as i ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- c/c++中与字符串处理相关的函数
void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...
- Go 实现字符串相似度计算函数 Levenshtein 和 SimilarText
[转]http://www.syyong.com/Go/Go-implements-the-string-similarity-calculation-function-Levenshtein-and ...
- js数组,字符串,json互相转换函数有哪些
js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...
- 1. python 字符串简介与常用函数
1. python中的字符串简介与常用函数 在python中,字符串变成了一个强大的处理工具集,他是不可变的,也就是说字符串包含字符与字符的顺序,他不可以原处修改 字符串是我们后面需要学习的稍大一点的 ...
- 字符串处理strcpy strcat函数的用法
C语言函数字符串处理strcpy strcat函数的用法: 1)strcat是用来连接两个字符串的,原型是char *strcat(char *dest,char *src),作用是把src所指字符串 ...
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...
- Js中常用的字符串,数组,函数扩展
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...
- c语言中字符串转数字的函数
ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...
随机推荐
- 从零开始实现放置游戏(六)——实现挂机战斗(4)导入Excel数值配置
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地 ...
- hdu 2189 dp
/* 类似完全背包,容量为n的背包用素数填,求满背包的种数 dp(i,j)表示用不超过i的素数组成的j的种数 dp[i][j]=dp[i-1][j],若i为素数则dp[i][j]+=dp[i][j-i ...
- Perm 排列计数(bzoj 2111)
Description 称一个1,2,...,N的排列P1,P2...,Pn是Magic的,当且仅当2<=i<=N时,Pi>Pi/2. 计算1,2,...N的排列中有多少是Magic ...
- MYSQL 存储过程 多表更新异常捕捉和异常处理方式
今天在做MYSQL 存储过程 多表更新的功能 多表更新时候注意事项 1.首先是确保多表更新能够一次执行,途中没有哪个表的sql语句错误 2.上线后修改表结构及字段,请注意检查是否影响mysql 过 ...
- vue 设置头文件
vue的头文件是在index.html文件中设置的,毕竟vue的入口 先说一下标签页的名字: 就是这个名字的设置,要想每个标签页的名字都不一样,需要做以下这三步:1. 首先,在index.html文件 ...
- Python学习杂记_5_列表常用操作
列表操作 列表时用方括号括起来的一组元素值,是可变变量,可通过下表取值,也可以通过下表来修改值,列表中的元素是有序的,可以是不同的基本数据类型,如: names=[1, 2, 3, “abc”, “d ...
- hadoop(三)HDFS 文件系统
Hadoop 附带了一个名为 HDFS(Hadoop 分布式文件系统)的分布式文件系统,专门 存储超大数据文件,为整个 Hadoop 生态圈提供了基础的存储服务. 本章内容: 1) HDFS 文件系统 ...
- IIS7.5上安装Git服务器
系统要求: IIS 7及以上 .NET FrameWork 4.5 ASP.NET 4以上 安装步骤: 从Bonobo官网下载最新版本的BonoboService: 解压下载的zip包: 在IIS中新 ...
- EasyMvc入门教程-基本控件说明(6)进度条
进度条的发明是很牛逼的,就如12306采用了队列解决了系统崩溃的问题一样..:) 进度条大家都见过,那么我们先来实现一个简单的进度条,请看例子: @Html.Q().Progress().Value( ...
- Hadoop本地调试
windows上先调试该程序,然后再转到linux下. 程序运行的过程中, 报 Failed to locate the winutils binary in the hadoop binary pa ...