⑴ c语言,如何判断一个字符数组中元素是否包含除字母(a-z,A-Z)和数字(0-9)以外的东西。
可以的,利用循环。
下面只判断是不是全为字母或数字,如果不是则打印其位置和符号。
/* 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");
}
}
不懂的地方可以追问
⑵ 利用C语言指针比较三个数并且从小到大输出
#include<stdio.h>
int main()
{
int a,b,c,*p1,*p2,*p3,*t;
p1=&a;
p2=&b;
p3=&c;
printf("请输入三个整数:");
scanf("%d%d%d",p1,p2,p3);
if(*p1>*p2){t=p1;p1=p2;p2=t;}
if(*p1>*p3){t=p1;p1=p3;p3=t;}
if(*p2>*p3){t=p2;p2=p3;p3=t;}
printf("%d %d %d ",*p1,*p2,*p3);
getch();
return 0;
}
⑶ c语言指针
#include<stdio.h>
int swap(char *sentence)
{ char *ph,*pt,c;
int n=0;
ph=pt=sentence; //ph指向第1个字符
while ( *pt ) pt++; pt--; //pt指向最后1个字符
while ( ph<pt )
{
while ( ((*ph)<'A' || (*ph)>'Z') && ph<pt ) ph++; //ph向后移动到大写字母直到超过pt位置为止
while ( ((*pt)<'A' || (*pt)>'Z') && ph<pt ) pt--; //pt向前移动到大写字母直到超过ph位置为止
if ( ph<pt ) { c=(*ph); (*ph)=(*pt); (*pt)=c; ph++; pt--; n++; } //如果没有互相超过位置,交换
else break; //pt位置和ph位置发生交错,结束
}
printf("%s
",sentence);
return n;
}
void main()
{ char str[256]={"I Don't Like You."};
int n;
printf("%s
",str);
n=swap(str);
printf("%d
",n);
}
⑷ C语言输出A~Z
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main ( )
{
int x,y;
int row=6,col=6;
int r,c;
r=0;
for (y=0;y<col;y++)
{
c=65+r;
for (x=0;x<col-y;x++)
{
printf("%c",(char)c);
c+=x+2+y;
}
r+=y+1;
printf("\n");
}
system("pause");
}
⑸ c语言中a到z,递增如何表示
如果a和z都是整数
for(i=0;i<(z-a);i++)
{
a++
printf("%d",a)
}
如果是字母
char a='a',z='z';int c,i;
c='z'-'a'
for(i=0;i<c;i++)
printf("%c",a+i)
⑹ c语言 用指针 来判断N个数里最大直 最小直
#include<stdio.h>
void main()
{
int a[100];int i,n;int *max; int *min:
printf("输入你想输入数的个数\n");
scanf("%d",&n);
printf("输入你想输入的值\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=a;
min=a;
for(i=1;i<n;i++)
{
if(*max<a[i])
max=&a[i];
if(*min>a[i])
min=&a[i];
}
printf("最大数为%d\n最小数为%d\n",*maz,*min);
}
⑺ 在c语言中怎样将a转化成z
如果是字符处理的话,‘a’的ASCII码是97 ,‘z’的ASCII码是122;要将‘a’转化为‘z’ 只需 让‘a‘+25
⑻ c语言中怎么用指针调换顺序
要调换三个数的顺序,用排列组合原理简单的计算总共有6种方法,不知道楼主是想按其中某种方法交换变量的具体数值,还是将所有6种排序都打印出来?
例如,a=1,b=2,c=3,交换后结果为:a=3,b=1,c=2.
首先需要两个中间变量作为交换的媒介。程序如下
:
main()
{
int
a=1,b=2,c=3;
int
*x=a,*y=b,*z=c;/*定义3个指针变量,并分别赋予初值为a,b,c的地址。*/
int
*p=null,*s=null;/*x为交换中介指针变量,初始化为空*/
*p=*x;
*s=*y;
*x=*z;
*y=*p;
*z=*s;
printf("%d
%d
%d",a,b,c);
getch();
}
其实交换数不需要用到指针,直接运用变量本身也可交换。当然指针交换的好处在于函数内部可以实际交换两个数的值。
⑼ c语言如何用指针判断一个字符串中哪些为整数
include<stdio.h>
#include<ctype.h>
int i; //在C语言程序中,不能在其它变量声明前有可执行语句,所以 int i; i=0; int a;是错误的,
//而全局变量如果不赋值就自动初始化为0,如果想赋值,也需int i=0;
int a;
char *str;
char string[80];//必须指明数组的大小
void s( )// 此处不需要参数,因为前面已经定义了全局变量字符数组string
{
printf("please enter the element of the string");
gets(string);
}
void is_integer()//该函数也不需要参数,原因同上一个函数
{
char *str;
str= &string[i];
while(*str !='\0')
{
str= &string[i];
a=isdigit ( *str );
if( a != 0 )//isdigit的结论是或不是数字,而没有进行转换,所以判断后,还要以%c格式输出
printf("%c 是数字\n",*str);
i++;
}
}
void main (void)
{
s();
is_integer( );//函数调用时,实参处不能加类型说明,如is_integer(char *str);是错误的,
//如果有参数也只能是is_integer(*str);
}
⑽ 编写一段C语言程序,用来输出从a~z,A~Z这些字母分 别对应哪些数字,另外他还想知道,这些数字
int i;
for(i='a';i〈='z';i十十)
printf("%c=%d\n",i,i);
大写字母类似。