头文件: c语言 < ctype.h > c++ <cctype>
isalpha(c) 判断字符c是否是大写字母或者小写字母 用toupper(c)返回c的大写形式 tolower(c)返回c的小写形式
isupper(c) 判断字符c是否是大写英文字母 是的话返回非零值,否则返回零。
islower(c) 判断字符c是否是小写英文字母 是的话返回非零值,否则返回零。
类似的还有 isdigit isprint (判断字符是否为可打印字符,包括空格);
头文件:<string.h>
sscanf() 从一个字符串读进与格式相符的数据。
常见用法:char buf[512]= ; sscanf("123456","%s",buf); printf("%s",buf); 结果为:123456.
注意函数返回的是表示正确格式化数据的个数,上面返回1。
sprintf()把格式化的数据写入某个字符串中。
常见用法:char s[N],t[N]; int c; sscanf(s,"%d",&c); sprintf(t,"%d",c);
fgetc(fin),从指定的文件中读取一个字符,以EOF结束,getchar从标准输入中读取一个字符,等价于fgetc(stdin)。
fgets(buf,n,file); 从目标文件流file中读取n-1个字符,放入以buf为起始地址的内存空间中,
fgets(buf,sizeof(s),stdin); 首先s肯定是一个已定义的字符数组,该调用从标准输入流stdin中读入s数组的大小sizeof(s-1)在减一的长度到buf所指的内存空间中,前提是buf已经申请好空间了。
gets从标准输入读取一行字符到调用者提供的缓冲区中,但是缺陷是没有指明读取的最大字符数,所以gets不停的忘字符数组塞东西,不管放不放的下,gets目前已经废除,但是为了向后兼容,目前还可以使用,但是建议使用fgets。
strcpy(a,c),把字符串c复制到字符串a,只能复制字符串,不需要指定长度,它遇到被复制字符的串结束符‘\0'才退出,所以容易溢出,所以通常在字符串复制中使用。
memcpy(b,a,sizeof(a)*k),可以复制任意内容,包括字符数组,整形,结构体,类等等。并且其根据第三个参数决定复制的长度,如果没有k表示复制整个数组,