使用ctype.h头文件中的isspace()函数
isspace()函数:若该函数的参数为空白字符,则返回真。
题一代码:?
#include<stdio.h>
#include<stdbool.h>/*用true和false分别代替1 0*/
int main(void)
{
unsigned long num;/*待测试的数*/
unsigned long div;/*可能的约数*/
bool isprime;/*素数标记*/
printf("请输入一个待分析的数:");
printf("退出按q\n");
while (scanf("%lu", &num) == 1)
{
for (div = 2, isprime = true; (div * div) <= num; div++)
{
if (num % div == 0)
{
if ((div * div) != num)
{
printf("%lu是可以被%lu和%lu除尽的\n", num, div, num / div);
}
else
{
printf("%lu不能被%lu除尽\n", num, div);
}
isprime = false;/*该数不是素数*/
}
}
if (isprime)
{
printf("%lu是可以的");
}
printf("请输入另一个待分析的数:");
printf("退出按q\n");
}
printf("再见!");
return 0;
}
题二代码:
/*统计字符数、单词数、行数*/
#include<stdio.h>
#include<stdbool.h>/*用true和false分别代替1 0*/
#include<ctype.h>
#define STOP '|'
int main(void)
{
char c, prev;/*读入字符,读入前一个字符*/
long n_chars = 0L;/*字符数*/
int n_lines = 0, n_words = 0, p_lines = 0;/*行数,单词数,不完整的行数*/
bool inword = false;/*若c在单词中,inword为true*/
printf("Enter text to be analyzed(| to terminate):\n");
prev = '\n';/*用于识别完整的行*/
while ((c = getchar()) != STOP)
{
n_chars++;/*统计字符*/
if (c == '\n')
{
n_lines++;/*统计行*/
}
if (!isspace(c) && !inword)/*若c不是空白字符,且inword为假*/
{
inword = true;/*开始新单词*/
n_words++;/*统计单词*/
}
if (isspace(c) && inword)
{
inword = false;/*达到单词末尾*/
}
prev = c;/*保存字符的值*/
}
if (prev != '\n')
{
p_lines = 1;
}
printf("characters=%ld, words=%d, lines=%d", n_chars, n_words, n_lines);
printf("partial lines =%d\n", p_lines);
return 0;
}
|