C语言,如何判断一个字符数组中元素是否包含除字母(a-z,A-Z)和数字(0-9)以外的东西。
想实现这样一个功能:当收到一串字符串(长度最多为6),将其放到字符数组中,然后判断其中是否包含了除了字母和数字()以外的东西,比如说其他符号~!@#¥等等,我的逻辑是一个...
想实现这样一个功能:当收到一串字符串(长度最多为6),将其放到字符数组中,然后判断其中是否包含了除了字母和数字()以外的东西,比如说其他符号~!@#¥等等,我的逻辑是一个一个判断,觉得不方便呢,有其他简便方法吗?
展开
3个回答
展开全部
可以的,利用循环。
下面只判断是不是全为字母或数字,如果不是则打印其位置和符号。
/* 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");
}
}
不懂的地方可以追问
下面只判断是不是全为字母或数字,如果不是则打印其位置和符号。
/* 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");
}
}
不懂的地方可以追问
展开全部
想实现这样一个功能:当收到一串字符串(长度最多为6),将其放到字符数组中,然后判断其中是否包含了除了字母和数字()以外的东西,比如说其他符号~!@#¥等等,我的逻辑是一个一个判断。你可以再去问问专业人士,看看他们能不能帮到你。
C语言是一个编程语言,广泛应用于底层开发,在大学软件课程中,属于基础,而学习C语言需要勤奋练习在学习C语言的过程中,一般都是枯燥乏味的,所以我们学习之前,一定要多看看这方面的书籍,将自己的心思沉淀一下。加强逻辑思维,记住语法规则,理解书上的相关知识。
C语言是一个编程语言,广泛应用于底层开发,在大学软件课程中,属于基础,而学习C语言需要勤奋练习在学习C语言的过程中,一般都是枯燥乏味的,所以我们学习之前,一定要多看看这方面的书籍,将自己的心思沉淀一下。加强逻辑思维,记住语法规则,理解书上的相关知识。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言中,高维数组本质上其实是数组的数组,这点很重要。比如二维数组是其包含的一维数组的连续排列,所以对于数组int myArray[3][3],myArray和myArray[0]在表达式中的值是一样的(因为两者都是它们起点的地址)。
这就和一维数组int myArray2[3],整个数组的地址和myArray2[0]的地址是一样的是同一个道理。因为myArray是二维数组,myArray[0]是一个一维数组,所以后者本身在表达式中出现表示的仍然是它的地址,而不像一维数组的myArray2[0]表示它的值。
这就和一维数组int myArray2[3],整个数组的地址和myArray2[0]的地址是一样的是同一个道理。因为myArray是二维数组,myArray[0]是一个一维数组,所以后者本身在表达式中出现表示的仍然是它的地址,而不像一维数组的myArray2[0]表示它的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询