处理字符串的一些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 ...
随机推荐
- id_rsa id_rsa.pub
id_rsa 私钥 id_rsa.pub 公钥 https://blog.csdn.net/qq_36663951/article/details/78749217 https://blog.cs ...
- 在vue中使用Element-UI
Element-UI是一套基于Vue2.0的UI组件库,http://element.eleme.io/#/zh-CN/component/carousel 首先npm install element ...
- Mongoose 参考手册
转自:https://cnodejs.org/topic/548e54d157fd3ae46b233502 Mongoose 是什么? 一般我们不直接用MongoDB的函数来操作MongoDB数据库 ...
- favicon还是这个网站生成的比较正确
原文发布时间为:2011-11-16 -- 来源于本人的百度文章 [由搬家工具导入] http://tools.dynamicdrive.com/favicon/ http://www.rw-desi ...
- poj 2391 Ombrophobic Bovines 最短路 二分 最大流 拆点
题目链接 题意 有\(n\)个牛棚,每个牛棚初始有\(a_i\)头牛,最后能容纳\(b_i\)头牛.有\(m\)条道路,边权为走这段路所需花费的时间.问最少需要多少时间能让所有的牛都有牛棚可待? 思路 ...
- java 去html标签,去除字符串中的空格,回车,换行符,制表符
public static String getonerow(String allLine,String myfind) { Pattern ...
- 使用p6spy格式化日志输出
P6Spy 是针对数据库访问操作的动态监测框架(为开源项目,项目首 页:www.p6spy.com)它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改.P6Spy 分发包包括P6L ...
- Codeforces 869 C The Intriguing Obsession
题目描述 — This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, ...
- 我眼中的AI
!!!!本文禁止转载,引用,仅供观看 最初了解人工智能是在我上大二的时候,在看头条的时候经常看到有关人工智能的事情,当时的我和大多数的人一样,感觉人工智能很神奇.当时就整晚整晚的想人工智能会取代人类呀 ...
- IOS7开发~NSAttributedString
从 NSBundle 中读取rtf文本文件的内容,然后用UITextView展示: NSURL *url = [[NSBundle mainBundle] URLForResource:@" ...