原题地址
字符串入门题, 因为完全不擅长所以还是 WA 了好几次才过.
还犯了一个9错误, 果然做题时不应该听《チルノのパーフェクトさんすう教室》......
代码如下:
- #include <bits/stdc++.h>
- using namespace std;
- void write(int x)
- {
- if (x <0)
- {
- putchar('-');
- x = -x;
- }
- if (x> 9) write(x / 10);
- putchar(x % 10 + '0');
- }
- int main()
- {
- string a, b;
- getline(cin, a);
- getline(cin, b);
- for (int i = 0; i < a.length(); i++) a[i] = tolower(a[i]);
- for (int i = 0; i < b.length(); i++) b[i] = tolower(b[i]);
- a = '' + a +' ';// 为了查找时
- b = '' + b +' ';// 能匹配准确.
- if (b.find(a) == string::npos) printf("-1");
- else
- {
- int first = b.find(a);
- int ans = 0, sep = b.find(a);// 一开始 ans 未副初值, 因为在 C++ 中, 定义局部变量时如果未初始化, 则值是随机的, 因为这 WA 了好几次, 希望大家引以为戒.
- while (sep != string::npos)
- {
- ans++;
- sep = b.find(a, sep + 1);
- }
- write(ans);
- printf(" ");
- write(first);
- }
- return 0;
- }
- View Code
来源: http://www.bubuko.com/infodetail-2931610.html