9.14.1
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char str[50];
if(gets(str) && str[0])
{
int i;
int char_num[7] = {
0};
for(i = 0; str[i]; i++)
{
if(iscntrl(str[i]))
char_num[0]++;
else if(isspace(str[i]))
char_num[1]++;
else if(isdigit(str[i]))
char_num[2]++;
else if(islower(str[i]))
char_num[3]++;
else if(isupper(str[i]))
char_num[4]++;
else if(ispunct(str[i]))
char_num[5]++;
else if(!isprint(str[i]))
char_num[6]++;
}
printf("%s的字符统计如下:\n", str);
printf("控制字符: %d\n", char_num[0]);
printf("空白字符: %d\n", char_num[1]);
printf("数字字符: %d\n", char_num[2]);
printf("小写字符: %d\n", char_num[3]);
printf("大写字符: %d\n", char_num[4]);
printf("标点字符: %d\n", char_num[5]);
printf("不可打印字符: %d\n", char_num[6]);
}
return 0;
}
9.14.2
int my_strlen(char * str, int n)
{
int count = 0;
while(*str++ && n-- > 0)
count++;
return count;
}
9.14.3
char * my_strcpy(char * str, const char * str1, int count)
{
strncpy(str, str1, count);
*(str + count - 1) = '\0';
return str;
}
9.14.4
char * my_strcat(char * str, const char * str1, int count)
{
strncat(str