查找星期
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号 | 星期 |
0 | Sunday |
1 | Monday |
2 | Tuesday |
3 | Wednesday |
4 | Thursday |
5 | Friday |
6 | Saturday |
int getindex( char *s );
函数getindex
应返回字符串s
序号。如果传入的参数s
不是一个代表星期的字符串,则返回-1。
#include <stdio.h>
#include <string.h>
#define MAXS 80
int getindex( char *s );
int main()
{
int n;
char s[MAXS];
scanf("%s", s);
n = getindex(s);
if ( n==-1 ) printf("wrong input!\n");
else printf("%d\n", n);
return 0;
}
/* 你的代码将被嵌在这里 */
Tuesday
2
today
wrong input!
int getindex( char *s )
{
int i;
char *p[7]={"Sunday","Monday","Tuesday",
"Wednesday","Thursday","Friday","Saturday"};
for( i = 0 ; i < 7 ; i++ )
{
if(strcmp(s,p[i]) == 0)
{
return i;
}
}
return -1;
}
查找子串
本题要求实现一个字符串查找的简单函数。
char *search( char *s, char *t );
函数search
在字符串s
中查找子串t
,返回子串t在s
中的首地址。若未找到,则返回NULL。
#include <stdio.h>
#define MAXS 30
char *search(char *s, char *t);
void ReadString( char s[] ); /* 裁判提供,细节不表 */
int main()
{
char s[MAXS], t[MAXS], *pos;
ReadString(s);
ReadString(t);
pos = search(s, t);
if ( pos != NULL )
printf("%d\n", pos - s);
else
printf("-1\n");
return 0;
}
/* 你的代码将被嵌在这里 */
The C Programming Language
ram
10
The C Programming Language
bored
-1
char *search(char *s, char *t)
{
int i,j;
for(i=0 ; s[i]!='\0' ;i++)
{
j=0;
while(s[i+j] == t[j])
{
j++;
if(t[j] == '\0')
return s+i;
}
}
return 0;
}