第5关:我要摘星星
本关要求:编写函数fun
(),删除字符串中所有的*
号。
编写函数fun
(),其功能是:删除字符串中所有的 *
号。编写该函数时,不得使用C
语言标准库中提供的字符串函数。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
测试输入:****A*BC*DE**F***G***
。 预期输出:ABCDEFG
。
#include <stdio.h>
//参数a[]存储要处理的字符串
void fun( char a[] )
{
int j=0;
for(int i=0;i<=81;i++){
if(a[i]!='*'){
a[j]=a[i];
j++;
}
}
}
int main()
{
char s[81];
fgets(s,sizeof(s),stdin);
fun( s );
puts(s);
return 0;
}
第4关:降降符
本关需要编写函数将字符按降序(ASCII
码值由大到小)排列。
ASCII
是现今最通用的单字节编码系统。
65~90
为26
个大写英文字母,97~122
号为26
个小写英文字母。
大小规则如下:
数字的ASCII码
<大写字母的ASCII码
<小写字母的ASCII码
。
提示:小写字母的ASCII
码值比其相对应大写字母的ASCII
码大32
。
编程要求
补全右侧begin
至end
中间的代码,实现如下功能:
- 对长度为
8
个字符的字符串,编写函数fun
()将8
个字符按降序(ASCII码值由大到小)排列。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
测试输入:BDAedbca
。 预期输出:edcbaDBA
。
#include<stdio.h>
#include<stdlib.h>
void fun(char s[],int num)
{ char t;
for(int j=0;j<num;j++){
for(int i=j+1;i<num;i++){
if(s[i]>=s[j]){
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
}
}
int main()
{
char s[10];
fgets(s,sizeof(s),stdin);
fun(s,8);
printf("%s\n",s);
return 0;
}
第3关:你大我就小,你小我就大
如果给出的字符是大写字母,则将其转换成小写字母输出,如果该字符是小写字母,则将其转化成大写字母输出。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char n;
scanf("%c",&n);
if(n>='A'&&n<='Z'){
n=n+32;
printf("%c",n);
}else if(n>='a'&&n<='z'){
n=n-32;
printf("%c",n);
}
}
第2关:分门别类算一算
本关需要用户编写一个C
语言程序,统计出某行字符中字母、数字和其他字符的个数。
字符串比较,判断大小写
举例说明:
假设ch
是一个字符:
大写判断:ch>='A' && ch <= 'Z';
小写判断:ch >='a' && ch <='z';
数字判断:ch >='0' && ch <='9';
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
要求从键盘上输入一行文字,统计出该行字符中大写字母、小写字母、空格、数字和其他字符的个数。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
测试输入:Wo shi Yes He><LLO L55 World &?^
预期输出:
capital letters:8
small letters:11
blank spaces:6
numbers:2
other:5
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void my_strlen(char *p);
void my_strlen(char *p)
{
int i=0,capital=0,small=0,blank=0,num=0,others=0;
while(1){
//printf("%c\n",*(p+i)=='\0');
if(*(p+i)>'A'&&*(p+i)<'Z')
capital++;//是大写字母
else if(*(p+i)>'a'&&*(p+i)<'z')
small++;
else if(*(p+i)==' ')
blank++;
else if(*(p+i)>'0'&&*(p+i)<'9')
num++;
else if(*(p+i)!='\0'&&*(p+i)!='\n'){
//printf("%c",*(p+i));
others++;
}else
break;
i++;
}
printf("capital letters:%d\n",capital);
printf("small letters:%d\n",small);
printf("blank spaces:%d\n",blank);
printf("numbers:%d\n",num);
printf("other:%d",others);
}
int main()
{
//统计大写字母、小写字母、空格、数字和其他字符的个数。
char n[100];
fgets(n,sizeof(n),stdin);
my_strlen(n);
}
第1关:到底有多长
本关需要完成求某个字符串长度的小程序。
编写一个调用函数来实现求字符串长度的程序。从键盘输入字符串,由程序输出其长度。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
测试输入:helloworld
。 预期输出:10
。
#include<stdio.h>
#include<string.h>
#include<stdio.h>
int my_strlen(char *p);
int my_strlen(char *p)
{
int i=0,num=0;
while(1){
//printf("%c\n",*(p+i)=='\0');
if(*(p+i)!=' '&&*(p+i)!='\n'&&*(p+i)!='\0'){
num++;
}
if(*(p+i)=='\0')
break;
i++;
}
return num;
}
int main()
{
char n[50];
int num;
//scanf("%s",n);
/*用%d输入数字或%s输入字符串时,
忽略空格、回车或者制表符等空白字符(被作为数据的分隔符),
读到这些字符时,系统认为数据读入结束,
因此用scanf()函数按%s格式符不能输入带空格的字符串。*/
fgets(n,sizeof(n),stdin);//限制输入字符串长度不超过数组大小
//gets(n);
num = my_strlen(n);
printf("%d",num);
}
如果这篇博客对你有帮助的话,可不可以给我一个赞鼓励我!^o^ 谢谢!