Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
Sample Input
abcdefgfedcba xxxxx
Sample Output
abcdefg(max)fedcba x(max)x(max)x(max)x(max)x(max)
Author
lcy
Source
Recommend
本题注意
1不用考虑字母大小写,单纯的比较ASIIC码
2注意codeblocks的断点调试,如果项目路径包含中文,遇到断点处不会停,所以项目路径要是全英文。
3在定义数组存储字符串的时候,最好用
void *memset(void *str, int c, size_t n)初始化一下,防止把里面未赋值的'\0'当作字符串终止符,错误判断了字符串长度,(也就是最好初始化成不是'\0'的ASIIC码)
C语言代码如下:
#include<stdio.h> #include<string.h> int main() { char s[300]; memset(s,123,300); while(scanf("%s",s)!=EOF) { getchar(); char temp='A'; for(int i=0;s[i]!='\0';i++) if(s[i]>temp) temp=s[i]; for(int i=0;s[i]!='\0';i++) { if(s[i]==temp) { for(int j=strlen(s);j>=i+1;j--) s[j+5]=s[j]; s[++i]='('; s[++i]='m'; s[++i]='a'; s[++i]='x'; s[++i]=')'; } } printf("%s\n",s); } }