单位网站建设管理情况seo学徒招聘
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转换成对应命名规范,并在一行中输出显示。
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 3 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
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;
}