• 【模拟】C++与Java


                                                                        C++与Java
                                Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

    Description

    按照Java的命名规范,由一个多个单词构成的变量名的命名规则为:第一个单词的开头为小写字母,其余单词都以大写字母开头,单词与单词之间不加任何分隔符,除了单词的首字母之外的其他字母一律使用小写。例如:name、myName。而C++的命名则全部使用小写字母,在单词和单词之间使用“_”来作为分隔符。例如:name、my_name。
          你的任务就是写一个程序把按照C++的命名方式命名的变量名转换为Java的命名方式。

    Input

    输入包含多组测试数据。

    每组数据为一行字符串(字符串长度不超过100)。

    Output

    对于每组测试数据,输出转换后的字符串。注意:如果输入的字符串不符合C++的命名规范,则输出“Error”(不包含引号)。

    Sample Input

    my_name
    myName

    Sample Output

    myName
    Error

    #include<stdio.h>
    #include<string.h>
    #include<string.h>
    int main()
    {
        char s[1000], t[1000];
        int len, i, k, flag;
        while(gets(s)!=NULL)
        {
            k =0;
            flag = 0;
            memset(t, 0, sizeof(t));
            len = strlen(s);
            for(i=0; i<len; i++)//判是否为合法C++命名
            {
                if(s[i]<'a' || s[i]>'z')
                {
                    if(s[i]=='_')
                    {
                        if(s[0]=='_' || s[len-1]=='_' || s[i+1]=='_')
                        {
                            printf("Error
    ");
                            flag =1;
                            break;
                        }
                    }
                    else
                    {
                        printf("Error
    ");
                        flag = 1;
                        break;
                    }
                }
            }
            if(flag) continue;
    
            for(i=0; i<len; i++)//如果合法改为Java命名形式
            {
                if(s[i]=='_') ;
                else if(s[i]>='a' && s[i]<='z')
                {
                     if(s[i-1]=='_')
                        t[k++] = s[i]-32;
                     else
                        t[k++] = s[i];
                }
            }
            printf("%s
    ", t);
        }
        return 0;
    }
    View Code
    每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。
  • 相关阅读:
    C#连接各种数据库的方法
    C#中MDI窗体的一些设置
    Winform子窗体刷新父窗体
    MDI窗体应用程序
    C# 窗体间传值方法大汇总
    mdi父窗体如何向子窗体发送数据
    DataGridView 清空原数据
    js call回调的this指向问题
    sass进阶 @if @else if @else @for循环
    sass的加减乘除
  • 原文地址:https://www.cnblogs.com/6bing/p/4115617.html
Copyright © 2020-2023  润新知