#include<stdio.h>
struct library
{
char writer[20];
}book[30],tem;
main()
{
int i,n;
int ret=0;
a:
printf("请输入作者名:");
scanf("%s",book[0].writer);
for(i=0;i<20;i++)
{
if(book[0].writer[i]>'z'&&book[0].writer[i]<'a')
ret++;
else n++;
}
b:
if(ret==0)
{printf("%s",book[0].writer);}
else
{ret=0; goto a;}
}
请问怎么就出错了呢,我想它只要输入的不全是字母就要求重新输入
C语言中可以用系统提供的函数islower()和isupper()来判断一个字符是否是有效的字母。
通过遍历字符串中的每个字符,用以上函数进行检验,就可以达到检验字符串是否全部是字母了。
函数说明:
#include <ctype.h> //函数所需头文件
int islower(int c); //checks for a lower-case character. 不是返回0,是,则返回非0值
int isupper(int c); //checks for an uppercase letter.不是返回0,是,则返回非0值
参考代码: