你的程序里面获取循环的位置不对,也就是获取的字符串长度的n应该放在函数里面。
成都创新互联是一家专注于做网站、网站建设与策划设计,赤壁网站建设哪家好?成都创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:赤壁等地区。赤壁做网站价格咨询:13518219792
讲n=strlen(s)放到函数里面,就可以了。
由于大写字母与小写字母之间的差值为 32,因此小写字母转换为大写字母的方法就是将小写字母的 ASCII 码值减去 32,便可得到与之对应的大写字母。
利用 getchar 函数从键盘上输入一个小写字母,并将其赋给一个字符变量 a;然后将 a—32 的值赋给字符变量 b;最后进行输出,输出时先输出字母,再将字母以整数形式输出。其具体步骤如下:
① 定义两个字符变量 a、b;
② a=get char();
③ b=a—32;
④ 打印输出。
程序代码
#include stdio.h
int main()
{
char a,b;
printf("输入一个小写字母:\n");
a=getchar();
b=a-32;
printf("转换后的字母为:%c,%d\n",b,b);
return 0;
}
用ctype.h中的函数tolower和toupper。前者以大写的字符作为参数,返回相应的小写字符;后者以小写的字符作为参数,返回相应的大写字符。
#include ctype.h
#include stdio.h
int main()
{
char c = 'A';
printf("%c", tolower(c)); //a
c = 'b';
printf("%c", toupper(c)); //B
return 0;
}
如果没有相应的大小写,函数会返回字符本身。
#include ctype.h
#include stdio.h
int main()
{
char c = '0';
printf("%c", tolower(c)); //0
printf("%c", toupper(c)); //0
return 0;
}
1、C语言中,字符的存储占用一个字节,且都是使用其对应的ASCII码值来存储的。
2、根据ASCII码表,我们可以看出:大、小写字母都是按顺序进行存储的,大写字母的ASCII值区间为:65~90,对应的字母为:'A'-'Z';小写字母的ASCII值区间为:97~122,对应的字母为:'a'-'z',因此,将小写字母转化为大写字母,可以直接将该变量减32即可得到对应的大写字母。
3、因此源程序如下:
#include stdio.h
char toUpCase(char ch);
int main()
{
int ch;
printf("请输入一个小写字母:");
scanf("%c",ch);
printf("对应的大写字母为:%c\n",toUpCase(ch)) ;
}
char toUpCase(char ch)
{
if(( 'a' = ch) (ch ='z'))
{
return (ch - 32);
}
return ch;
}
4、输出如下:
C语言中,字符的存储都是使用ascii值来存储的。
根据ASCII码表,我们可以看出:大、小写字母都是按顺序进行存储的,大写字母的ASCII值区间为:65~90,对应的字母为:'A'-'Z';小写字母的ASCII值区间为:97~122,对应的字母为:'a'-'z',因此,将小写字母转化为大写字母,可以直接将该变量减32即可得到对应的大写字母,如:
char ch='a';
printf("upper case '%c'='%c'\n", ch, ch-32 );
如果记不清,大小字母谁大谁小,则可以采用如下方法进行转换:
char ch='x';
printf("upper case '%c'='%c'\n", ch, ch-'a'+'A' ); //减a得到偏移值,加A得到相应的大写字母
有三种方法:
1,用小写字母减去32,eg: ch-32
2,用小写字母和32做异或运算 ch^32
3,利用库函数toupper(ch)
这三种方法都可以把小写字母转化成大写字母,根据情况使用,可以简化程序
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款