c語言判斷輸入
A. c語言如何判斷輸入類型
if(scanf("%d",&h)!=1)
printf("it's not a number!\n");
因為scanf是從緩存中讀取輸入的數據如果你輸入的不是數字,就會返回0,如果是數字就會返回1;
一般人不知道scanf還有返回值,就可以看看頭文件中scanf的定義了。
其實我還有一個更好的辦法,你輸入的不是數字就要他重新輸入,直到輸入的是數字為止,這樣是最好的寫法。
程序如下:
#include <stdio.h>
int main()
{
int h;
while(!scanf("%d",&h))
{
fflush(stdin);
printf("\n輸入錯誤,請重新輸入:\n");
}
}
其中fflush(stdin)是清理緩存,就像我上面說的scanf是從緩存取數的,
B. c語言判斷"如果輸入a"
#include<stdio.h>
intmain()
{chars[200];
inti;
gets(s);
for(i=0;s[i];i++)
if(s[i]=='z')s[i]='a';
elseif(s[i]>='a'&&s[i]<'z')s[i]++;
printf("%s
",s);
return0;
}
#include<bits/stdc++.h>
usingnamespacestd;
charc;
intmain()
{
while((c=getchar())!='
')
if(c=='z')
printf("a");
elseif(c=='')
printf("");
else
printf("%c",c+1);
return0;
}
C. 如何在C語言中判斷輸入的是回車
回車'\r',換行'\n',在linux,Unix環境下嚴格區分,但在windows環境下一般只使用'\n',如果保存兼容性則內,可以寫為:容
char gc = getchar();
if(gc == '\r' || gc == '\n') break;
D. C語言程序題 判斷輸入的字元類型
if(ch>='a'&&ch<=='z'),printf("該字元專是小寫字母"),else if(ch>='A'&&<='Z'),printf("該字元是大寫字母"),else if(ch>='0'&&<='9'),printf("該字元是數字"),elseprintf("該字元是其他字元") 。
E. C語言:如何判斷輸入的是數字還是其他字元
有很多方法:
1、可以用sacnf或gets函數直接接收輸入的字元串,然後用循環遍歷字元串中每一個內字元,判斷其是字容母還是數字。
2、可以用循環調用getch()或getchar()函數來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。
至於怎麼判讀是字母還是數字,很簡單,假設字元c,
滿足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母。
滿足 (c>='0' && c<='9')就是數字。
F. c語言中 要判斷一個輸入的元素是否合法
scanf("%s",
str)輸入一個字元串代替輸入整數。然後檢查字元串里的字元是否都是數字字元,符合條件的話再用函數atoi把字元串轉化為整數
G. c語言對輸入的值進行判斷是什麼意思
輸入一個值,然後判斷其合法性
比如說,輸入一個分數,那麼它就應該是不小於0,不大於一百的數值
超過這個范圍就是非法的
H. c語言 如何判斷輸入的是數字還是字母
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建版一個初始的.cpp文件,例權如:test.cpp。
I. c語言中如何怎麼判斷輸入的是數字
#include <stdio.h>
#include <string.h>
// 枚舉類型:自然數,整數,小數 , 未知
enum TYPE {Natural,Integer,Float,Unkonwn};
/*
一個合法的數字(包括自然數,整數,小數)的格式是:
[+-](可選) + [0個或多個數字] + [小數點](可選) + [0個或多個數字]
比如:
+1
1
-1
+3.14
3.14
-3.14
+3.
3.
-3.
+.123
.123
-.123
都是合法的數字
*/
enum TYPE check(char s[])
{
int length = strlen(s);
int start = 0 , end = length-1;
// 去開始空白字元
while(start < length && s[start]==' ' || s[start]=='\t'){start++;}
// 去結尾空白字元
while(end >=0 && s[end]==' ' || s[end]==' '){end--;}
// 是否負數標識
bool isNegative = false;
// 是否小數標識
bool isFloat = false;
// 是否有整數部分
bool hasIntegerPart = false;
// 是否有小數部分
bool hasDecimalPart = false;
for(int i = start ; i <= end ; i++)
{
if(s[i] == '-' || s[i] == '+')
{
if(i == start)
isNegative = (s[i] == '-');
else
return Unkonwn;
}
else if(s[i] == '.')
{
if(!isFloat)
isFloat = true;
else
return Unkonwn;
}
else if(s[i] >= '0' && s[i] <='9')
{
if(!isFloat)
hasIntegerPart = true;
else
hasDecimalPart = true;
}
else
{
return Unkonwn;
}
}
if(isFloat)
{
if(hasIntegerPart || hasDecimalPart)
return Float;
else
return Unkonwn;
}
else
{
if(!isNegative)
return Natural;
else
return Integer;
}
}
int main(int argc, char *argv[])
{
char s[100];
enum TYPE type;
while(1)
{
scanf("%s",s);
type = check(s);
switch(type)
{
case Natural:
printf("%s\n","Natural");
break;
case Integer:
printf("%s\n","Integer");
break;
case Float:
printf("%s\n","Float");
break;
case Unkonwn:
printf("%s\n","Unknown");
break;
}
}
return 0;
}
/*
測試數據:
+1
1
-1
+3.14
3.14
-3.14
+3.
3.
-3.
+.123
.123
-.123
*/
J. c語言輸入值的判斷
getchar("%c",&x);
if (c=getchar(x))
改成
x = getchar();
if ('c' == x)
完整的
#include<cstdio>
main()
{
charx;
printf("把大象放冰箱,總共分幾步");
printf("a.一步 ");
printf("b.兩步 ");
printf("c.三步 ");
x=getchar();
if('c'==x)
printf("你的回答正確 ");
else
printf("你的回答錯誤 ");
}