第1关 字符逆序
#include
#include
int main(void)
{
/*********Begin*********/
char a[20];
scanf("%s",&a);
for(int i=strlen(a)-1;i>=0;i--)
printf("%c",a[i]);
/*********End**********/
return 0;
}
第二关:字符统计
#include
int main(void)
{
/*********Begin*********/
int n,i,j,count;
char s[10][50];
scanf("%d",&n);
for(i=0;i='0'&&s[i][j]<='9')
count++;
printf("%d\n",count);
}
/*********End**********/
return 0;
}
第三关:字符插入
#include
#include
int main(void)
{
/*********Begin*********/
int i,j,m,n;
int max,min;
char a[50],b[50];
gets(a);
gets(b);
m=strlen(a);
n=strlen(b);
for(i=0,min=0;ia[i])
min=i;
for(i=0,max=0;imin;j--)
a[j]=a[j-1];
a[j+1]=b[max];
puts(a);
/*********End**********/
return 0;
}
第四关:字符串处理
#include
#include"string.h"
#define MAX 1000
int main(void)
{
/*********Begin*********/
char s1[MAX],s2[MAX];
int i,j,f,m,n;
gets(s1);
gets(s2);
m=strlen(s1);
n=strlen(s2);
scanf("%d",&f);
for(i=m; i>f-1; i--)
s1[i+n]=s1[i];
for(j=0,i=f; i
第五关:字符串统计
#include
#include
#define N 1024
char s[N + 1], t[N + 1];
int main(void)
{
/*********Begin*********/
fgets(s, N, stdin);
for(;;) {
if(strncmp(s, "stop", 4) == 0 && s[4] == '\n')
break;
int sum = 0, maxlen = 0;
char *p;
p = strtok(s, " \t\n");
while(p) {
int len = strlen(p);
if(len > maxlen) {
maxlen = len;
strcpy(t, p);
}
sum += len;
p = strtok(NULL, " \t\n");
}
printf("%d %s\n", sum, t);
fgets(s, N, stdin);
}
/*********End**********/
return 0;
}
第六关:字符串排序
#include
#include
#define N 1024
char s1[N], s2[N], s3[N];
int main(void)
{
/*********Begin*********/
scanf("%s%s%s", s1, s2, s3);
if(strcmp(s1, s2) <= 0) {
if(strcmp(s2, s3) <= 0)
printf("%s\n%s\n%s\n", s1, s2, s3);
else {
if(strcmp(s3, s1) <= 0)
printf("%s\n%s\n%s\n", s3, s1, s2);
else
printf("%s\n%s\n%s\n", s1, s3, s2);
}
} else {
if(strcmp(s1, s3) <= 0)
printf("%s\n%s\n%s\n", s2, s1, s3);
else {
if(strcmp(s3, s2) <= 0)
printf("%s\n%s\n%s\n", s3, s2, s1);
else
printf("%s\n%s\n%s\n", s2, s3, s1);
}
}
/*********End**********/
return 0;
}