1. 输出月份英文名
本题要求实现函数,可以返回一个给定月份的英文名称。
函数接口定义:
char *getmonth( int n );
函数getmonth
应返回存储了n
对应的月份英文名称的字符串头指针。如果传入的参数n
不是一个代表月份的数字,则返回空指针NULL。
输入样例1:
5
输出样例1:
May
输入样例2:
15
输出样例2:
wrong input!
#include <stdio.h>
char *getmonth( int n )
{
char *month[13] = {"January","February","March","April","May",
"June","July","August","September","October",
"November","December","wrong input!"};
char *s;
if(n>=1 && n<=12)
s = month[n-1];
else
s = month[12];
return s;
}
int main()
{
int n;
char *s;
scanf("%d", &n);
s = getmonth(n);
if ( s == NULL )
printf("wrong input!\n");
else
printf("%s\n", s);
return 0;
}
2. 指定位置输出字符串
本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。
函数接口定义:
char *match( char *s, char ch1, char ch2 );
函数match
应打印s
中从ch1
到ch2
之间的所有字符,并且返回ch1
的地址。
裁判测试程序样例:
输入样例1:
program
r g
输出样例1:
rog
rogram
输入样例2:
program
z o
输出样例2:
(空行)
(空行)
输入样例3:
program
g z
输出样例3:
gram
gram
#include <stdio.h>
#include <string.h>
#define MAXS 10
char *match( char *s, char ch1, char ch2 )
{
int i = 0, j = 0, len = 0;
char *p = NULL;
len = strlen(s);//统计字符串长度
for(i = 0;i < len;i++)//遍历s
{
if(*(s+i) == ch1)
{
p = &s[i];//让p指向第一个与ch1相同的字符
for(j = i;j < len; j++)//从第一个相同的字符开始继续向下遍历
{
if(s[j] != ch2)
printf("%c",*(s+j));//第一个字符之后的字符如果与最后一个字符串不相同则输出此字符
if(s[j] == ch2)
{
printf("%c\n",*(s+j));//当与第二个字符相同时则输出此字符并换行后返回p
return p;
}
}
printf("\n");
return p;
}
}
printf("\n");
return p;
}
int main()
{
char str[MAXS], ch_start, ch_end, *p;
scanf("%s\n", str);
scanf("%c %c", &ch_start, &ch_end);
p = match(str, ch_start, ch_end);
printf("%s\n", p);
return 0;
}
3. 字符串排序
函数接口定义:
void fsort(char *color[ ], int n);
其中 color为指针数组首地址,n是字符串个数。
裁判测试程序样例:
输入样例:
输出样例:
black blue green red yellow
#include <stdio.h>
#include <string.h>
void fsort(char *color[ ], int n)
{
int flag;
char *temp;
for(int i =0 ; i < n-1 ; i++)
{
for(int j = 0 ; j < n-1-i ; j++)
{
flag = strcmp(color[j],color[j+1]);
if(flag > 0)
{
temp = color[j+1];
color[j+1] = color[j];
color[j] = temp;
}
}
}
}
int main(void)
{
int i;
char *pcolor[ ] = {"red", "blue", "yellow", "green", "black"};
fsort(pcolor, 5); /* 调用函数 */
for(i = 0; i < 5; i++)
printf("%s ", pcolor[i]);
printf("\n");
return 0;
}