c语言如何检验一个字符串是否为数字构成,字符串长度已经定好是四位
发布网友
发布时间:2022-04-23 10:42
我来回答
共2个回答
热心网友
时间:2023-09-27 21:19
假设字符串保存在数组s中,可以用以下方法进行判断:
if(strlen(s) == 4 && isdigit(s[0]) && sscanf(s, "%d%c") == 1)
{
//字符串符合条件
//判断条件strlen(s) == 4检查字符串长度是否为4
//判断条件isdigit(s[0])排除首字母非数字(为空白字符)的可能
//判断条件sscanf(s, "%d%c") == 1确定由字符串开始处能读入一个整型值(即字符串前段为数字),且读入一个整型后已遍历整个字符串(因为%c)尝试读入字符失败。
}
else
{
//字符串不符合条件
}
注意需要添加对ctype.h的引用。
热心网友
时间:2023-09-27 21:20
不判断的话是不能实现的吧。。。。你看这样能不能满足你的条件咯。。。
#include<stdio.h>
void main(){
char a[5] ;
int i = 0 ;
scanf("%s",a) ;
while(a[i]>='0'&&a[i]<='9'&&i<4){
i++ ;
}
if(i<4){
printf("NO!\n") ;
}
else
printf("YES!\n") ;
}
或者这样:
#include<stdio.h>
#include <ctype.h>
#include <string.h>
void main(){
char a[20] ;
int i = 0 ;
int flag = 1;
scanf("%s",a) ;
while(i < strlen(a)&&flag!=0){
flag = isdigit(a[i]) ; // 当a[i]为数字返回非0,否则返回0
i++ ;
}
if(i<strlen(a)){
printf("NO!\n") ;
}
else
printf("YES!\n") ;
}