匹配字符串(这次是不同方法)
#include <bits/stdc++.h>using namespace std;
void low(string &s){
for(char i : s){
i = tolower(i);
}
}
string tar, temp = "***"; //tar是目标, temp临时变量
int tarsize, c = 0, l = 0; //第一个是目标的长度, c代表找到几次, l是实时更新的位置
vector<int> locate; //记录位置
bool isfind = false;
int main(){
ios::sync_with_stdio(false);
cin >> tar;
low(tar);
tarsize = tar.size();
while(temp != "\0"){
cin >> temp;
low(temp);
if(tar == temp){
isfind = true;
c++;
locate.push_back(l);
}
l += temp.size() + 1; //加一有空格
}
if(isfind){
cout << locate << ' ' << c;
}
else{
cout << "-1";
}
return 0;
}
代码如上
题目:https://www.luogu.com.cn/problem/P1308
这次我的想法是反正每个单词之间都有空格, 可以用cin一个一个读, 然后再做出返回
但是现在运行起来它不返回 , 不知道为啥...
求助{:10_266:}
void low(string &s){
for(char i : s){
i = tolower(i);
}
}
for(char &i : s)
人造人 发表于 2022-4-28 23:21
for(char &i : s)
还是没有输出qwq
谢谢
#include <bits/stdc++.h>
using namespace std;
void low(string &s) {
for(char &i : s) {
i = tolower(i);
}
}
string tar, temp = "***"; // tar是目标, temp临时变量
int tarsize, c = 0, l = 0;//第一个是目标的长度, c代表找到几次, l是实时更新的位置
vector<int> locate; //记录位置
bool isfind = false;
int main() {
ios::sync_with_stdio(false);
cin >> tar;
low(tar);
tarsize = tar.size();
while(temp != "\0") {
cin >> temp;
if(!cin.good()) temp = "\0";
low(temp);
if(tar == temp) {
isfind = true;
c++;
locate.push_back(l);
}
l += temp.size() + 1; //加一有空格
}
if(isfind) {
cout << locate << ' ' << c;
} else {
cout << "-1";
}
cout << endl;
return 0;
}
页:
[1]