A—雷同检测
考试的时候老师最讨厌有人抄袭了。 自从有了电子评卷,老师要查找雷同卷,就容易多了,只要将两个人的答案输入计算机,进行逐个字符的比对,把相同的位置都找出来,就一目了然了。
输入格式
22 行,每行包含一串字符(长度不超过 200200)。
输出格式
11 行,包含若干个以空格分隔的数字,表示出现相同字符的位置。
示例输入
I am suantoujun.
I am huayemei.
示例输出
1 2 3 4 5 6 8 9
———————————————————————————————————————————
#include<stdio.h>
#include<string.h>
int main()
{
char str1[201],str2[201];
gets(str1);
gets(str2);
int len1,len2;
len1=strlen(str1);
len2=strlen(str2);
int i,j=0;
int x[201];
for(i=0; i<len1; i++){
if(str1[i]==str2[i]){
x[j]=i+1;
j++;
}
}
for(i=0; i<j; i++){
printf("%d ",x[i]);
}
//getchar();
//getchar();
return 0;
}
B—首字母大写
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
输入
输入一行:待处理的字符串(长度小于80)。
输出
输出一行:转换后的字符串。
示例输入
if so, you already have a google account. you can sign in on the right.
示例输出
If So, You Already Have A Google Account. You Can Sign In On The Right.
———————————————————————————————————————————
#include<stdio.h>
int main()
{
char str[81];
gets(str);
int i=0;
while(str[i]!='\0'){
if(str[i]>='a'&&str[i]<='z'){
str[i]-=32;
}
while(str[i]!=' '&&str[i]!='\t'&&str[i]!='\r'&&str[i]!='\n'){
i++;;
}
i++;
}
puts(str);
//getchar();
//getchar();
return 0;
}
C—大小写转换
读入一些字符串,将其中的小写字母转成大写字母(其他字符不变)。
输入
输入为多行,每行为一个字符串,字符串只由字母和数字组成,长度不超过80。输入以“End of file”结束。
输出
对于每行输入,输出转换后的字符串。
输入示例
Hello
ICPC2004
12345abcde
输出示例
HELLO
ICPC2004
12345ABCDE
提示
用“scanf("%s", str) == 1”这个条件可以判断输入是否结束。如果此条件为假,则输入结束(对于本题)。
——————————————————————————————————————————
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str[81];
while(scanf("%s",str)==1){
int len=strlen(str);
for(i=0; i<len; i++){
if(str[i]>='a'&&str[i]<='z'){
str[i]-=32;
}
}
for(i=0; i<len; i++){
printf("%c",str[i]);
}
printf("\n");
}
//getchar();
//getchar();
return 0;
}
D—数字反转
给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 22)。
输入格式
输入共 11 行,一个整数 NN。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
数据范围
-1,000,000,000 \n \the 1,000,000,000−1,000,000,000≤N≤1,000,000,000。
示例输入
123
示例输出
321
示例输入 2
-380
示例输出 2
-83
———————————————————————————————————————————
#include<stdio.h>
int main()
{
int n,s=0;
scanf("%d",&n);
while(n!=0){
s=s*10+n%10;
n/=10;
}
printf("%d",s);
// getchar();
// getchar();
return 0;
}
E—删除单词后缀
给定一个单词,如果该单词以、或者后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为 er
ly
ing
00),否则不进行任何操作。
输入格式
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 3232)。
输出格式
输出按照题目要求处理后的单词。
示例输入
referer
示例输出
refer
——————————————————————————————————————————
#include<stdio.h>
#include<string.h>
int main()
{
char str[33];
gets(str);
int len=strlen(str);
if((str[len-1]=='r'&&str[len-2]=='e')||(str[len-1]=='y'&&str[len-2]=='l')){
for(int i=0; i<len-2; i++){
printf("%c",str[i]);
}
}
else if(str[len-1]=='g'&&str[len-2]=='n'&&str[len-3]=='i'){
for(int i=0; i<len-3; i++){
printf("%c",str[i]);
}
}
else printf("%s",str);
//getchar();
//getchar();
return 0;
}
F—判断字符串是否为回文
输入一个字符串,输出该字符串是否回文。 回文是指顺读和倒读都一样的字符串。
输入格式
输入为一行字符串(字符串中没有空白字符,字符串长度不超过 100100)。
输出格式
如果字符串是回文,输出;否则,输出。"yes"
"no"
示例输入
abcdedcba
示例输出
yes
#include<stdio.h>
#include<string.h>
int main()
{
char str1[101],str2[101];
gets(str1);
int len=strlen(str1);
int i,j=0,cnt=0;
for(int i=len-1; i>=0; i--){
if(str1[i]!=str1[j]){
printf("no");
break;
}
else{
cnt++;
}
j++;
}
if(cnt==len)printf("yes");
//getchar();
//getchar();
return 0;
}
H—字典序
给你两个不同的字符串,如果第一个字符串的字典序小于第二个字符串,则输出YES,如果第一个字符串的字典序大于第二个字符串,则输出NO。
输入
两行。 第一行一个字符串,第二行一个字符串。 保证字符串的长度不超过10000。 保证两个字符串不完全相等。
输出
如果第一个字符串的字典序小于第二个字符串,则输出YES,如果第一个字符串的字典序大于第二个字符串,则输出NO。
示例输入
abc
abe
示例输出
YES
———————————————————————————————————————————
#include<stdio.h>
#include<string.h>
int main()
{
char str1[10001],str2[10002];
gets(str1);
gets(str2);
if(strcmp(str1,str2)>0)printf("NO");
else printf("YES");
//getchar();
//getchar();
return 0;
}
I—验证子串
输入两个字符串,验证其中一个串是否为另一个串的子串。
输入格式
输入两个字符串, 每个字符串占一行,长度不超过 200200 且不含空格。
输出格式
若第一个串 s_1s1 是第二个串 s_2s2 的子串,则输出;"(s1) is substring of (s2)"
否则,若第二个串 s2是第一个串s1的子串,输出;"(s2) is substring of (s1)"
否则,输出。"No substring"
示例输入
abc
dddncabca
示例输出
abc is substring of dddncabca
———————————————————————————————————————————
#include<stdio.h>
#include<string.h>
int main()
{
char str1[201],str2[201];
gets(str1);
gets(str2);
int len1=strlen(str1);
int len2=strlen(str2);
int i,j,a,b,c,d=0,e=0,l;
if(len1>len2){
a=len1;
b=len2;
c=0;
}
else {
a=len2;
b=len1;
c=1;
}
if(c==0){
for(i=0; i<a; i++){
l=i;
for(j=0; j<b; j++){
if(str2[j]==str1[l]){
l++;
d++;
}
else break;
}
if(d==b){
printf("%s is substring of %s",str2,str1);
break;
}
d=0;
e++;
}
// if(e==a)printf("No substring");
}
else if(c==1){
for(i=0; i<a; i++){
l=i;
for(j=0; j<b; j++){
if(str1[j]==str2[l]){
l++;
d++;
}
else break;
}
if(d==b){
printf("%s is substring of %s",str1,str2);
break;
}
d=0;
e++;
}
// if(e==a)printf("No substring");
}
if(e==a)printf("No substring");
//getchar();
//getchar();
return 0;
}