首页 > 代码库 > C++与Java(模拟)

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_namemyName

Sample Output

myNameError

#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\n");                        flag =1;                        break;                    }                }                else                {                    printf("Error\n");                    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\n", t);    }    return 0;}
View Code

 

C++与Java(模拟)