0728字符串相关

在字符串之前先回顾一下字符变量char:

char类型用于存储字母、标点符号等字符,但char本身存储的是整数,每一个整数都表示一个特定的字符,用整数表示字符的常见解析方式为ASCⅡ码,0~127中共128个整数各表示一个字符。

#include<stdio.h>

int main()
{
	char gg;           //定义字符变量
	gg='z';            //初始化,亦可用0~128内的整数取代
	printf("%c",gg);   //打印字符
	return 0;
}

{
	char gg;           		//定义字符变量
	gg=getchar();			//键盘输入字符
	putchar(gg);  	 		//打印字符(不管输入多少都只打印起点地址位)
	return 0;
}

字符串

字符串是一个或多个字符的序列,初始化如下

int main()
{
	char gg[10]={'n','a','i','v','e'};
	int i;
	
	printf("%s",gg);    打印字符串
	return 0;
}

{
	char gg[10]={'n','a','i','v','e'};
	int i;
	
	for(i=0;i<10;i++)
		printf("%c",gg[i]);
}

 

与字符的区别在于字符是基本类型(char),而字符串是派生类型(char 数组),由两个字符组成:字符和结束字符\0。

获取字符命令

单个字符的获取:

getchar()

int main()
{
	char gg;           		//定义字符变量
	gg=getchar();			//获取字符 
	putchar(gg);  	 		//打印字符
	return 0;
}

获取的字符如下 : 

 

getch()

	char gg;           		//定义字符变量
	gg=getch();				//获取字符 
	putchar(gg);  	 		//打印字符

 获取的字符如下 :

 

getche()

#include<stdio.h>

int main()
{
	char gg;           		//定义字符变量
	gg=getche();			//获取字符 
	putchar(gg);  	 		//打印字符
	return 0;
}

 获取的字符如下 :

三个获取指令的区别:

getchar在获取字符后需要换行来完成程序,程序中会显示获取的内容和打印的内容,显示打印内容称为回显。

getch获取字符后自动完成打印命令并打印内容,但不回显

getche 获取字符后自动完成打印命令并打印内容,但回显

获取字符串

gets()

除去scanf("%s")以外,还有更加简便的指令来输入字符,即gets()。

同比scanf,除了更加简便以外,gets还有即使是空格也可以继续输入,不必再开新的指令的优势。

#include<stdio.h>

int main()
{
	char gg[100];       	//定义字符变量
	gets(gg);				//获取字符串 
	puts(gg);  	 			//打印字符串
	return 0;
}

 

打印字符串:

 

同scanf一样,gets()也需要回车来完成输入 。

 如果输入字符串内容大于程序定义的缓冲区长度,可能造成程序奔溃。

fgets()

fgets(字符数组名,n,文件指针);
#include<stdio.h>

int main()
{
	char gg[10];       		//定义字符变量
	fgets(gg,10,stdin);		//获取字符 
	puts(gg);  	 			//打印字符
	return 0;
}
其中的n是一个正整数。表示从文件中读出的字符串不超过n-1个字符。在读入的最后一个字符后加上串结束标志'\0'
1>在读出n-1个字符之前,如遇到了换行符或eof,则读出结束。
2>缓冲区内容大于n,则只读n-1个,遇到了换行符或eof,则读出结束。

 代码中fgets给了10-1个元素容量,打印时只显示9个字符(包括空格)。

字符串的判断

在涉及字符串内容判断的指令前需要先输入字符处理函数数据库<stype.h>

#include<stdio.h>

#include<stype.h>

C有一套专门用于处理字符的函数,stype.h包含了这些函数的原型。这些函数将字符作为参数,若其属于某个特定类别,就返回一个非零值,且若类别不同,其返回的值也有所差别。

isalnum
int sialnum(int ch);
变元为字母或数字时,函数返回非0值,否则返回0。

isalpha
int isalpha(int ch);
当变元为字母表中的字母时,函数返回非0值,否则返回0。各种语言的字母表互不相同,对于英语来说,字母表由大写和小写的字母A到Z组成。

iscntrl
int iscntrl(int ch);
当变元是控制字符时,函数返回非0,否则返回0。

isdigit
int isdigit(int ch);
当变元是十进制数字时,函数返回非0值,否则返回0。

isgraph
int isgraph(int ch);
如果变元为除空格之外的任何可打印字符,则函数返回非0值,否则返回0。

islower
int islower(int ch);
如果变元是小写字母,函数返回非0值,否则返回0。

isprint
int isprint(int ch);
如果变元是可打印字符(含空格),则函数返回非0值,否则返回0。

ispunct
int ispunct(int ch);
如果变元是除空格、字母和数字外的可打印字符,则函数返回非0,否则返回0。

isspace
int isspace(int ch);
当变元为空白字符(包括空格、换页符、换行符、回车符、水平制表符和垂直制表符)时,函数返回非0,否则返回0。

isupper
int isupper(int ch);
如果变元为大写字母,函数返回非0,否则返回0。

isxdigit
int isxdigit(int ch);
当变元为十六进制数字时,函数返回非0,否则返回0。

————————————未完——————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值