1. 命名规范
成绩 | 10 | 开启时间 | 2021年09月17日 星期五 18:00 |
折扣 | 0.8 | 折扣时间 | 2021年11月6日 星期六 00:00 |
允许迟交 | 否 | 关闭时间 | 2021年11月21日 星期日 00:00 |
家有家法,行有行规。在家有家的规矩,入行有行的规矩。我们计算机一行就有一个命名的规矩,不同的团体有不一样的命名规范,我们也有我们自己的命名规范。
请编写一个程序将一个按照C++命名规范的变量或函数转换为驼峰命名法或帕斯卡命名法对应名称。
C++ 命名规范中所有字母均为小写,以下划线确定分词。例如:java_programming_language。
驼峰式命名规范将标识符中所有的单词的首字母大写、其余字母小写后拼接在一起。例如:JavaProgrammingLanguage,可用于函数、方法的命名。
帕斯卡命名法将标识符中第一个单词的首字母小写,其余的单词的首字母大写、其余字母小写后拼接在一起。例如:javaProgrammingLanguage。可用于变量的命名。
输入描述
每个输入仅包含一组测试用例。
每个测试用例仅包含一个长度不超过200、只含有小写字母和下划线的字符串Str,表示一个驼C++ 命名规范名称。但是输入由下列格式组成 F#Str 或者 V#Str
F表示Str为函数命名,需转换成驼峰命名法对应名称,#为分隔符
V表示Str为变量命名,需转换成帕斯卡命名法对应名称,#为分隔符
保证输入的字符串的前两个字母一定是F#或者V#。
输出描述
对于每一组测试用例中的标识符,根据对应的F或V转换成对应命名规范,并在一行中输出显示。
2. 代码
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int name_transform(char a[100], char b[100]) {
int i, j;
if (a[0] == 'F') {
for (i = 2, j = 0; i < strlen(a); i++, j++) {
if (i == 2) {
b[j] = toupper(a[i]);
} else if (a[i] == '_') {
b[j] = toupper(a[i + 1]);
i++;
} else {
b[j] = a[i];
}
}
}
if (a[0] == 'V') {
for (i = 2, j = 0; i < strlen(a); i++, j++) {
if (a[i] == '_') {
b[j] = toupper(a[i + 1]);
i++;
} else {
b[j] = a[i];
}
}
}
b[j] = '\0';
printf("%s\n", b);
return 0;
}
int main(int argc, char *argv[]) {
char test_case[100], result[100];
// freopen("file in.txt","r",stdin);
(void)scanf("%s", &test_case);
name_transform(test_case, result);
// printf("%s\n",test_case);
// printf("\n") ;
return 0;
}