目录
7-1 组织星期信息
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
输入输出示例:括号内为说明,无需输入输出
输入样例 (repeat=3) :
3
Tuesday
Wednesday
year
输出样例:
3
4
-1
编译器:GCC
代码
#include <stdio.h>
#include <string.h>
int main()
{
char day[7][10] = {"Sunday","Monday","Tuesday",
"Wednesday","Thursday","Friday","Saturday" };//字符串数组
int repeat;
scanf("%d", &repeat); //输入repeat
int i, j;
char str[30];
for (i = 0; i < repeat; i++)
{
scanf("%s", &str); //输入字符串
for (j = 0; j < 7; j++) //将输入字符串与字符数组day中每个字符串比较
{
if (strcmp(str,day[j]) == 0)//使用strcmp函数比较两个字符串是否相等
{
printf("%d\n", j+1);//输出结果为下标加1
break;
}
}
if(j == 7) //没找到的情况,输出-1
printf("-1\n");
}
return 0;
}
7-2 查找指定字符
本题要求编写程序,从给定字符串中查找某指定的字符。
输入格式:
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出格式:
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
输入样例1:
m
programming
输出样例1:
index = 7
输入样例2:
a
1234
输出样例2:
Not Found
编译器:GCC
代码
#include <stdio.h>
int main()
{
int i,k;
int tip=0,max=0;
char a,d;
char b[81];
scanf("%c",&a);
getchar();//吃掉一个回车,否则结果会出错,回车会给下面的gets
gets(b);
k=0;
for(k=0;b[k]!='\0';k++){ //for终止条件为遇到空字符
if((a==b[k])&&(k>=max)){ //求该字符在字符串中所对应的最大下标,需满足字符相等与大于等于最大值
max=k; //将下标给max
tip=1; //tip置为1
}
}
if(tip==1){
printf("index = %d",max);//找到最大值则输出max
}else{
printf("Not Found"); //找不到最大值则输出Not Found
}
return 0;
}
7-3 字符串逆序
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
编译器:GCC
代码
#include<stdio.h>
int main()
{
int i=0,j=0;
char str[81];
gets(str); //输入字符串
while(str[i]!='\0')//终止条件为遇到空字符
i++; //求输入字符串长度i
for (j=i-1;j>=0;j--)//递减for循环 逆序输出每个字符
putchar(str[j]);
return 0;
}
7-4 统计大写辅音字母
英文辅音字母是除A
、E
、I
、O
、U
以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出字符串中大写辅音字母的个数。
输入样例:
HELLO World!
输出样例:
4
编译器:GCC
代码
#include <stdio.h>
#define MAXSIZE 81
int func(char str[]); //函数声明,参数是数组形式,返回类型为整型
int main(){
char str[MAXSIZE];
gets(str); //输入字符串
printf("%d",func(str));
}
int func(char str[]){ //函数定义,参数是数组形式,参数是数组形式,返回类型为整型
int count=0;
for (int i = 0; str[i]!='\0'; i++)//for循环,取出字符串每个字符,终止条件为遇到空字符
{
if (str[i]>='B'&&str[i]<='Z'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U')//统计大写辅音字母
{
count++; //计数加1
}
}
return count;//返回计算变量
}
7-5 字符串替换
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 | 对应字母 |
---|---|
A | Z |
B | Y |
C | X |
D | W |
… | … |
X | C |
Y | B |
Z | A |
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
输入样例:
Only the 11 CAPItaL LeTtERS are replaced.
输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.
编译器:GCC
代码
#include<stdio.h>
int main()
{
char a[81];
gets(a); //输入字符串
int i;
for(i=0;i<81;i++){ //使用for循环,取除最后空字符以外的每个字符进行替换
if(a[i]>='A'&&a[i]<='Z'){
a[i]=155-a[i];
}
}
puts(a);//输出字符串
return 0;
}