网站首页 > 文章中心 > 其它

c语言里非法字符的函数_c语言feof函数的用法

作者:小编 更新时间:2023-10-16 13:11:12 浏览量:288人看过

求一个在c语言中提示输入非法字符程序

#include?stdio.h?

c语言里非法字符的函数_c语言feof函数的用法-图1

void?main(void)

{

char?ch;

printf("请输入一个字符:");

scanf("%c",ch);

if(ch?'A'?ch?'Z'?||?ch?'a'?ch?'z'?)

printf("?");

}else

printf("非法字符!");

}

C语言编程问题,求高手解答遇到输入非法字符时,怎么处理.

#includestdio.h

#includetime.h

#include stdlib.h

#include "regex.h"

const int MAX_LEN = 1000;

/*去掉字符串两端的空格*/

char * trimString(char guessString[])

int head = 0 ,rear = strlen(guessString)-1;

char result[MAX_LEN];

int i,k;

/*开头空格*/

while( guessString[head] != '\0'

(guessString[head] == ' ' || guessString[head] == ' ' )

)

head ++;

/*尾部空格*/

while( rear = 0

(guessString[rear] == ' ' || guessString[rear] == ' ' )

rear --;

for(i = head ,k = 0; i = rear ; i++ , k++)

result[k] = guessString[i];

result[k] = '\0';

return result;

/*

提取字符串中的【正整数】.

如果是恰好包含【一个正整数】的字符串(正数前后可以有任意个空格,正数可以有多余的前导0),则返回这个正数;

如果是一个空串,则返回 -1

*/

int transStringToNum(char guessString[])

int i;

char trimGuessString[MAX_LEN];

int num = 0;

// 去前后空格

strcpy(trimGuessString,trimString(guessString));

// 检查是否空串

if( 0== strlen(trimGuessString) )

return -1;

// 检查是否有非数字字符

for(i = 0 ; trimGuessString[i] != '\0' ; i ++)

// 字符串转换成数字

for(i = 0 ,num = 0 ; trimGuessString[i] != '\0' ; i++)

num = num * 10 + (trimGuessString[i] - '0');

return num;

int main()

int num,guessNum,n,count=0;

char guessString[MAX_LEN];

char reply;

srand(time(NULL));

do

//产生一个随即数

num=rand()0+1;

printf("你有10次机会,请猜数字并按回车.\n");

for(n=1;n=10;n++)

// 以字符串形式读入一个整数

gets(guessString);

调用函数 transStringToNum 进行有效性验证

当返回值 guessNum 是负数时,

字符串 guessString 中没有合法的正数

guessNum = transStringToNum(guessString);

if(guessNum == -1 )

printf("请输入一个数字(必须是在1-100 之间)!\n");

n--;

continue;

printf("输入的不是一个合法数字(必须是在1-100 之间)!\n");

if(guessNumnum)

printf("It's too high!\n");

else if(guessNumnum)

printf("It's too low!\n");

这里有误,是 == 而不是 =

因为你刚好把这个分支放在最后,所以呢察觉不到错误

如果你写成

if(guessNum = num) else if(guessNumnum) else if(guessNumnum)

就知道错了.这时if(guessNum = num)永远都会被执行

因为这是一个【赋值语句】而不是【逻辑语句】,且 num 的值是恒正的

else if(guessNum == num)

printf("You are right!\n");

printf("你共用了%d次机会猜对数字.\n",n);

break;

printf("Do you want to continue(Y/N or y/n)?");

用 getch() 取代scanf ,不易出错

因为 getch()只能输入一个字符

而 scanf 可以读入多个字符,而且要回车

fflush(stdin);

reply = getch();

}while((toupper(reply)=='Y'));

printf("The game is over!\n");

return 0;

输入合法数字示例(数字包含在一对""中):

c语言中非法字符有哪些?

首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量.

C '' 是用单引号括起来的单个字符,正确.

以上就是土嘎嘎小编为大家整理的c语言里非法字符的函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章