C语言中:gets和getchar的区别以及指针的运用
方法一:
使用gets实现
#include<stdio.h>
void main()
{
char str[80], * p;
int digit,letter,other;
gets(str);
p = str;
digit = letter = other = 0;
while (*p != '\0')
{
if ((*p >= 'A' && *p <= 'Z')|| (*p >= 'a' && *p <= 'z'))
letter++;
else if (*p >= '0' && *p <= '9')
digit++;
else
other;
p++;
}
printf("digit=%d letter=%d other=%d\n", digit, letter, other);
}
方法二:
使用getchar实现
#include<stdio.h>
void count(char* s, int* digit, int* letter, int* other)
{
*digit = *letter = *other = 0;
while (*s!='\0')
{
if (*s >= '0' && *s <= '9')
(*digit)++;
else if ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z'))
(*letter)++;
else
(*other)++;
s++;
}
}
void main()
{
int i = 0, digit, letter, other;
char ch, str[80];
printf("Enter characters:\n");
ch = getchar();//getchat读取字符
while (ch !='\n')
{
str[i] = ch;
i++;
ch = getchar();
}
str[i] = '\0';
count(str, &digit, &letter, &other);
printf("digit=%d letter=%d other=%d\n", digit, letter, other);
}