常用字符处理函数(ctype.h)及字符串转换函数(stdlib.h)

字符处理函数

  1. isdigit( )——是数字,返回值为真,否则为0
  2. isalpha( )——是字母,返回值为真,否则为0
  3. isalnum( )——是数字/字母,返回值为真,否则为0
  4. islower( )——是小写字母,返回值为真,否则为0
  5. isupper( )——是大写字母,返回值为真,否则为0
  6. isspace( )——是空白字符(\n ’ ’ \f \r \t \v),返回值为真,否则为0
  7. iscntrl( )——是控制字符(\t \v \f \a \b \r \n),返回值为真,否则为0
  8. isprint( )——是可打印字符(包含空格),返回值为真,否则为0
  9. isgraph( )——是可打印字符(除了空格),返回值为真,否则为0
  10. tolower( )——若为大写字母,则转为小写字母并返回,否则返回原值
  11. toupper( )——若为小写字母,则转为大写字母并返回,否则返回原值

1、输入一行字符,统计其中字母、数字、空格和其他字符的个数

#include <stdio.h>
#include <ctype.h>
#define N 80

int main()
{
	char str[N];
	int  i, letter = 0, digit = 0, space = 0, others = 0;
		
	printf("Input a string:");
	gets(str);	
	
	for (i=0; str[i]!='\0'; i++)
	{		
		if (isalpha(str[i]))   
			letter ++;				/* 统计英文字符 */
		else if (isdigit(str[i]))   
			digit ++;				/* 统计数字字符 */
		else if (isspace(str[i]))                           
			space ++;				/* 统计空格 */
		else 
			others ++;				/* 统计其他字符 */
    }
		
	printf("English character: %d\n", letter);
	printf("digit character: %d\n", digit);
	printf("space: %d\n", space);
	printf("other character: %d\n", others);
	
	return 0;
}

2、输入一个英文名,将其转化为首字母大写并输出。(john smith→John Smith)

#include <stdio.h>
#include <ctype.h>
#define N 80

int main()
{
	char name[N];
	int i = 0;
	
	printf("Input a name:");
	gets(name);                    /* 输入名和姓 */
	
	while(!isalpha(name[i]))     /* 跳过所有空格,直到遇字母为止 */
		i++;
		
	name[i] = toupper(name[i]); /* 将名的首字母变为大写 */
	
	while (!isspace(name[i]))    /* 跳过所有字母,直到遇空格为止 */ 
		i++;
		
	while (!isalpha(name[i]))    /* 跳过所有空格,直到遇字母为止 */
		i++;
		
	name[i] = toupper(name[i]); /* 将姓的首字母变为大写 */
	
	printf("Formatted Name:%s\n", name);
	
	return 0;
}

字符串转换函数——将数字字符串转换为数字

  1. atof( )——将字符串转换为double型数据并返回,需传入字符串的首地址
  2. atoi( )——将字符串转换为int型数据并返回,需传入字符串的首地址
  3. atol( )——将字符串转换为long型数据并返回,需传入字符串的首地址
#include <stdio.h>
#include <stdlib.h>

int main()
{
	char str[] = {"   123.5"};    //字符串前的空格将被忽略
	int intNum;
	long longNum;
	double doubleNum;
	
	intNum = atoi(str);      /* 字符串转换为整型数 */
	longNum = atol(str);     /* 字符串转换为长整型数 */
	doubleNum = atof(str);   /* 字符串转换为双精度实型数 */	
	
	printf("intNum = %d\n", intNum);
	printf("longNum = %ld\n", longNum);
	printf("doubleNum = %f\n", doubleNum);
	
	return 0;
}
发布了23 篇原创文章 · 获赞 7 · 访问量 1995

猜你喜欢

转载自blog.csdn.net/weixin_44641176/article/details/99999890