C语言,如何判断一个字符数组中元素是否包含除字母(a-z,A-Z)和数字(0-9)以外的东西。

想实现这样一个功能:当收到一串字符串(长度最多为6),将其放到字符数组中,然后判断其中是否包含了除了字母和数字()以外的东西,比如说其他符号~!@#¥等等,我的逻辑是一个一个判断,觉得不方便呢,有其他简便方法吗?

可以的,利用循环。
下面只判断是不是全为字母或数字,如果不是则打印其位置和符号。
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{

int i,c=0;
char a[6];
scanf("%s",&a);
for(i=0; i<5 ;i++)
{
if(a[i] <= 'z'&&a[i] >='a'||a[i] <= 'Z' && a[i] >='A'||a[i]>=48 && a[i]<=57)
{
c++;
}
else
printf("第%d个位置:%c\n",i+1,a[i]);

}

if(c==5)
{
printf("全为字母或数字\n");
}

}
不懂的地方可以追问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-28
想实现这样一个功能:当收到一串字符串(长度最多为6),将其放到字符数组中,然后判断其中是否包含了除了字母和数字()以外的东西,比如说其他符号~!@#¥等等,我的逻辑是一个一个判断。你可以再去问问专业人士,看看他们能不能帮到你。
C语言是一个编程语言,广泛应用于底层开发,在大学软件课程中,属于基础,而学习C语言需要勤奋练习在学习C语言的过程中,一般都是枯燥乏味的,所以我们学习之前,一定要多看看这方面的书籍,将自己的心思沉淀一下。加强逻辑思维,记住语法规则,理解书上的相关知识。
第2个回答  2019-07-28
C语言中,高维数组本质上其实是数组的数组,这点很重要。比如二维数组是其包含的一维数组的连续排列,所以对于数组int myArray[3][3],myArray和myArray[0]在表达式中的值是一样的(因为两者都是它们起点的地址)。
这就和一维数组int myArray2[3],整个数组的地址和myArray2[0]的地址是一样的是同一个道理。因为myArray是二维数组,myArray[0]是一个一维数组,所以后者本身在表达式中出现表示的仍然是它的地址,而不像一维数组的myArray2[0]表示它的值。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网