字符串入门题,因为完全不擅长所以还是WA了好几次才过。
还犯了一个⑨错误,果然做题时不应该听《チルノのパーフェクトさんすう教室》……
代码如下:
#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; }
原文地址:https://www.cnblogs.com/Kirisame-Marisa/p/10311773.html
时间: 2024-11-05 18:42:24