实验7-3-8 统计字符出现次数 (20分)
本题要求编写程序,统计并输出某给定字符在给定字符串中出现的次数。
输入格式:
输入第一行给出一个以回车结束的字符串(少于80个字符);第二行输入一个字符。
输出格式:
在一行中输出给定字符在给定字符串中出现的次数。
输入样例:
programming is More fun!
m
输出样例:
2
#include<stdio.h>
int main(){
char a[80];
int i,j;
for(i=0;(a[i]=getchar())!='\n';i++);
//------>这里最后结尾一定是\n,否则程序会报错;
a[i]='\0';
//printf("%s",a);
char x;
scanf("%c",&x);
int cnt=0;
for(j=0;j<i;j++){
if(x==a[j]){
cnt++;
}
}
printf("%d",cnt);
return 0;
}
实验7-3-9 字符串字母大小写转换 (15分)
本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
输入格式:
输入为一个以“#”结束的字符串(不超过30个字符)。
输出格式:
在一行中输出大小写转换后的结果字符串。
输入样例:
Hello World! 123#
输出样例:
hELLO wORLD! 123
#include<stdio.h>
int main(){
char a[30];
int i,j;
for(i=0;(a[i]=getchar())!='\n';i++);
a[i]='\0';
printf("%s",a);
printf("\n");
for(j=0;j<i;j++){
if(a[j]>='a'&&a[j]<='z'){
a[j]=a[j]-32;
}else if(a[j]>='A'&&a[j]<='Z'){
a[j]=a[j]+32;
//a和A之间的关系:a-A=32;
}else if(a[j]=='#'){
a[j]='\0';//------->'\0'是字符串结束的标志
}
}
printf("%s\n",a);
return 0;
}
// 最后根据ASCII的顺序使用冒泡排序算法进行排序,注意:本题默认只有数字和小写字母
// 两种字符,且根据ASCII码表可知,数字的ASCII值小于小写字母的ASCII值。
// 如何利用ASCII码表进行排序?
#include<stdio.h>
int main(){
char a[100],b[100];
int i,j,k;
for(i=0;(a[i]=getchar())!='\n';i++);
a[i]='\0';
printf("a=%s",a);
printf("\n");
int t=0;
for(j=0;j<i;j++){ //去掉非重复元素的过程;
int flag=0;
for(k=0;k<j;k++){
if(a[j]==a[k]){
flag=1;
}
}
if(flag==0){
b[t]=a[j]; //b中的元素都是非重复的元素;
t++;
printf("%c",a[j]);
}
}
// 如何利用ASCII码表进行排序?冒泡法,要进行循环的次数超级多;
int temp;
for(j=0;j<t-1;j++){
for(k=0;k<t-j-1;k++){
if(b[k]>b[k+1]){
temp=b[k+1];
//----->int 类型等于char类型,在这里已经进行了转化;
b[k+1]=b[k];
b[k]=temp;
}
}
}
//---------------------------------------------------------//
另外一种比较大小的方法:
int temp;
for(j=0;j<t-1;j++){
for(k=j;k<t-1;k++){
if(b[k]<b[j]){
temp=b[j];
b[j]=b[k];
b[k]=temp;
}
}
}
printf("\n");
printf("%s\n",b);
return 0;
}