输入大写字母,输出大小写字母及其对应的ASCII码;输入语句,将大写字母变成小写字母;将句子中每个单词的第一个字母转换为大写字母;输入一串字符,分别算出英文字母、空格、数字、其他字符的个数(C)
在c语言中:1. 使用`%c`输出的是字符本身。2. 使用`%d`输出的是字符对应的ASCII。3. 在ASCII中,小写英文字符 = 大写英文字符+32。4. 还有注意区分单引号`''`和双引号`""`的区别。单引号:字符,是可以进行加减的。双引号:字符。
·
养成好习惯,点个赞 再走;有问题,欢迎私信、评论,我看到都会回复的
以下题目是对于ASCII码的一些练手题
在c语言中
- 使用
%c
输出的是字符本身 - 使用
%d
输出的是字符对应的ASCII - 在ASCII中,小写英文字符 = 大写英文字符+32
- 还有注意区分单引号
''
和双引号""
的区别
单引号:字符,是可以进行加减的
双引号:字符串
文章目录
抛砖引玉,先看一下这两个小题目:
- 将China加密
单引号:字符
字符进行加减时,内部进行了数学运算(先转化为ASCII码,进行加减后,根据输出格式%c
再转化为字符)
#include<stdio.h>
int main()
{
char C,h,i,n,a;
printf("%c%c%c%c%c",'C'+4,'h'+4,'i'+4,'n'+4,'a'+4);
return 0;
}
输出:
Glmre
- 按顺序打印26个大写英文字母
配合使用输出格式%c
和单引号''
#include<stdio.h>
int main()
{
char i;
for(i = 'A'; i <= 'Z'; i++){
printf("%c ", i);
}
return 0;
}
输出:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
输入大写字母,输出大小写字母及其对应的ASCII码(C)
- 使用
%c
输出的是字符本身 - 使用
%d
输出的是字符对应的ASCII - 在ASCII中,小写英文字符 = 大写英文字符 + 32
使用scanf()输入
#include<stdio.h>
int main()
{
char a, b;
//输入一个大写字母
scanf("%c", &a);
printf("%c %d\n", a, a);
b = a + 32;
printf("%c %d", b, b);
return 0;
}
输入:Z
输出:
Z 90
z 122
使用getchar()输入
#include<stdio.h>
int main(){
//请输入一个大写字母
char a = getchar();
printf("%c %d\n", a, a);
printf("%c %d", a + 32, a + 32);
return 0;
}
输入:A
输出:
A 65
a 97
再对上面这个题目进行扩展:
输入语句,将大写字母变成小写字母(C)
- 这个题目,要求输入的是语句,用好getchar()函数即可
#include<stdio.h>
int main()
{
int i = 0;
char a[80];
//输入一串字符串,回车时输入停止
while((a[i] = getchar()) != '\n'){
i++;
}
a[i] = '\0';//这只是人为加的结束标志
for(i = 0; a[i] != '\0'; i++){
if(a[i] >= 'A' && a[i] <= 'Z') a[i] += 32;
putchar(a[i]);
}
return 0;
}
输入:THIS is a Good Day
输出:
this is a good day
输入一个句子,将句子中每个单词的第一个字母转换为大写字母(C)
- 这个题目,我用指针玩的
#include<stdio.h>
void main()
{
char change(char*);
char ch, a[80];
int i = 0;
//输入一个字符串(以.结束)
while((ch = getchar()) != '.') a[i++] = ch;
a[i] = '\0';//添加结束标志
change(a);
puts(a);
return 0;
}
char change(char*p){
if(*p >= 'a' && *p <= 'z')*p -= 32;
while(*p != '\0'){
if((*p == ' ') && (*(p+1) >= 'a') && (*(p+1) <= 'z')){
*(p+1) -= 32;
}
p++;
}
}
输入:this is a good day.
输出:
This Is A Good Day
提高:
输入一串字符,分别算出英文字母、空格、数字、其他字符的个数(C)
#include<stdio.h>
int main()
{
int i = 0;
//英文字母、空格、数字、其他字符
int letter = 0, space = 0, digit = 0, others = 0;
char a[80];
//输入一串字符(以.结束)
while((a[i] = getchar()) != '.') i++;
a[i] = '\0';
for(i = 0; a[i] != '\0'; i++){
if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) letter++;
else if(a[i] == ' ') space++;
else if(a[i] >= '0' && a[i] <= '9') digit++;
else others++;
}
printf("letter = %d\nspace = %d\ndigit = %d\nothers = %d\n", letter, space, digit, others);
return 0;
}
输入:zhang guo hao 666 ~~~.
输出:
letter = 11
space = 4
digit = 3
others = 3
C语言入门题目文章导航:
- 素数(C)
- 水仙花数(C)
- 斐波那契数列(C)
- 完数(C)
- 阶乘(C)
- 直角杨辉三角形(C)
- 本篇文章
- 输入一个字符,找出他的前驱字符和后继字符(C)
- 最大数、最小数(C)
- 百钱买百鸡(C语言,枚举法)
- 辗转相除法求最大公约数,利用最大公约数求最小公倍数(C)
- 输入一个年份和一个月份,输出该年此月天数;知道日期,计算该日是本年的第几天(C)
- 输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字(C)
- 利用二维数组求方阵的主次对角线之和(C)
- 在一个二维数组中找出最小数及其所在的行和列(C)
- 找出一个二维数组中的鞍点(C)
- 删除指定字符串的指定字符(C)
- 字符串(C)
- 条件判断语句1(C)
- 条件判断语句2(C)
- 圆、三角形、正方形、长方体、计算1到100的和、和差积商、平均值
- 输入三个整数,要求程序把数据按从小到大的顺序放入x y z中,然后输出(C)
- 18个数围成一圈,求相邻三数之和最大数(C)
- 梯形法求定积分(C)
- 学生与课程的综合问题(C)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献16条内容
所有评论(0)