哪里错了呢

P1308 [NOIP2011 普及组] 统计单词数

你这思路好像不对,应该是判断到第一次空格的时候把它压到一个新的字符串里面去,然后第二次判断到空格就对比要找的字符串并且开始下一轮的判断,如果一样就++,不一样就清空之前压字符进去的字符串然后继续判断下一个,建议写do while。(第一个不用判断) @[ycyy](/user/877089) 以上是具体思路(求一关)
by liu_le_chen @ 2023-08-17 17:52:06


噢对了,补充一下,找到了一后把那个压入很多字符的字符串存到一个字符串数组里,然后再清空。(插入到“++”后面)
by liu_le_chen @ 2023-08-17 17:56:14


@[ycyy](/user/877089) (您的关注是对本人的最大支持)
by liu_le_chen @ 2023-08-17 17:57:31


@[liulechen](/user/1037273) 还是不太懂,字符串里有空格对getline()和转小写和判断是否一样影响应该不大吧
by ycyy @ 2023-08-17 18:08:14


@[ycyy](/user/877089) ```cpp #include<iostream> #include<string> using namespace std; int main(){ string a; getline(cin,a); string b; getline(cin,b); int c=0;//个数 int d[10000];//位置 //都转化为小写 for(int i=0;i<sizeof(b);i++){ if(b[i]>=65&&b[i]<=90)b[i]+=32; //这里97是小写字母a,大写Z的ascii码是90,改完后就不会RE } for(int i=0;i<sizeof(a);i++){ if(a[i]>=65&&a[i]<=90)a[i]+=32; } //两个字符串比较 for(int i=0;i<sizeof(b);i++){ if(b[i]==a[0]&&b[i+1]==a[1]){c++;d[c]=i;}//直接将i的值作为两个字符串相等的位置 } if(c>0){cout<<c<<" "<<d[1];}//c++后是从1开始的 else cout<<-1; return 0; } ```
by hexuchen @ 2023-08-17 18:16:10



by liu_le_chen @ 2023-08-17 18:18:20


@[liulechen](/user/1037273) 但是那样会WA掉
by hexuchen @ 2023-08-17 18:22:00


代码还要改,等我下
by hexuchen @ 2023-08-17 18:22:15


没有影响呀,如果是空格,那就调用一个判断的函数,然后continue;
by liu_le_chen @ 2023-08-17 18:23:55


应该不会吧
by liu_le_chen @ 2023-08-17 18:24:19


| 下一页