目录:
A - 雷同检测
B - 首字母大写
C - 大小写转换
D - 数字反转
E - 删除单词后缀
F - 判断字符串是否为回文
H - 字典序
I - 验证子串
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 - 删除单词后缀
给定一个单词,如果该单词以、或者后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为 erlying00),否则不进行任何操作。
输入格式
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 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;
}










