字符处理函数
- isdigit( )——是数字,返回值为真,否则为0
- isalpha( )——是字母,返回值为真,否则为0
- isalnum( )——是数字/字母,返回值为真,否则为0
- islower( )——是小写字母,返回值为真,否则为0
- isupper( )——是大写字母,返回值为真,否则为0
- isspace( )——是空白字符(\n ’ ’ \f \r \t \v),返回值为真,否则为0
- iscntrl( )——是控制字符(\t \v \f \a \b \r \n),返回值为真,否则为0
- isprint( )——是可打印字符(包含空格),返回值为真,否则为0
- isgraph( )——是可打印字符(除了空格),返回值为真,否则为0
- tolower( )——若为大写字母,则转为小写字母并返回,否则返回原值
- 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;
}
字符串转换函数——将数字字符串转换为数字
- atof( )——将字符串转换为double型数据并返回,需传入字符串的首地址
- atoi( )——将字符串转换为int型数据并返回,需传入字符串的首地址
- 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;
}