总时间限制: 1000ms 内存限制: 65536kB
描述
有两个字符串 str 和 substr,str 的字符个数不超过 10,substr 的字符个数为 3。(字符个数不包括字符串结尾处的’\0’。)将 substr 插入到 str 中 ASCII 码最大的那个字符后面,若有多个最大则只考虑第一个。
输入
输入包括若干行,每一行为一组测试数据,格式为
str substr
输出
对于每一组测试数据,输出插入之后的字符串。
样例输入
样例输出
来源
计算概论期末考试
思路
遍历字符串,找到 ASCII 码最大的字符,将 i
的值设为最大字符的下标,然后在 i+1
的位置插入 substr
。
Code
C++ STL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <bits/stdc++.h> using namespace std; int main() { string str, substr; while(cin >> str >> substr) { long long unsigned int i = 0; char max; for(long long unsigned int j = 0; j < str.size(); j++) { if(j == 0) {i = j; max = str[j];} else if(str[j] > max) {i = j; max = str[j];} } str.insert(i+1, substr); cout << str << endl; } }
|
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdio.h> #include <string.h>
int main() { char str[12], substr[5]; while(scanf("%s %s", str, substr) != EOF) { int i = 0; char max; for(int j = 0; j < strlen(str); j++) { if(j == 0) {i = j; max = str[j];} else if(str[j] > max) {i = j; max = str[j];} } for(int j = strlen(str); j > i; j--) str[j+3] = str[j]; for(int j = 0; j < 3; j++) str[i+j+1] = substr[j]; printf("%s\n", str); } }
|