假期编程
此博客链接:https://www.cnblogs.com/ping2yingshi/p/12295515.html
1.首字母大写(17min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2026
Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
Output
请输出按照要求改写后的英文句子。
Sample Input
i like acm
i want to get an accepted
Sample Output
I Like Acm
I Want To Get An Accepted
题解:
方法:判断空格
思路:此题关键在于怎样判断每个单词,看了题目,除了第一个单词外,后面每个单词前面都有一个空格,所以以空格来判断是每个单词,遇到空格,就把空格后面的一个单词第一个字母大写。
代码如下:
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h> int main(void) { char c[100]; int k; int str; while( gets(c)!='\0') { str=strlen(c); c[0]=c[0]-32; for(k=1;k<str;k++) { if(c[k]==' ') c[k+1]=c[k+1]-32; } for(k=0;k<str;k++) printf("%c",c[k]); printf("\n"); } return 0; }
2.c语言合法标识符(31min)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2024
Problem Description
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample Input
3
12ajf
fi8x_a
ff ai_2
Sample Output
no
yes
no
题解:
方法:以字母和下划线开头,中间以字母,下划线,数字组合的字符串为合法字符串。
思路:定义一个字符数组,接收字符串,1.先判断数组第一个元素是否是以字母或者下划线开头的字符,不是不是合法字符,是则进行步骤2判断;
2.除了第一个字符意外的所有字符是否是以字母,下划线,数字组成的,是则是合法字符串,不是则不是合法字符串。
代码如下:
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h> int main(void) { int k; int str; int n; scanf("%d",&n); getchar(); while(n>0) { int flag=1; char c[100]; gets(c); str=strlen(c); if((c[0]>='a'&&c[0]<='z')||(c[0]>='A'&&c[0]<='Z')||(c[0]=='_')) { for(k=1;k<str;k++) { if((c[k]>='a'&&c[k]<='z')||(c[k]>='A'&&c[k]<='Z')||(c[k]=='_')||(c[k]>='0'&&c[k]<='9')) flag=1; else { flag=0; break; } } } else flag=0; if(flag==1) printf("yes\n"); if(flag==0) printf("no\n"); n--; } return 0; }
出来混总是要还的