【发布时间】:2021-02-08 02:10:16
【问题描述】:
我正在尝试查找以 '1' 开头和结尾的子字符串的数量,其中输入字符串是 1111、10001 等数字。给定的代码未显示正确的输出,但如果我将 getline 替换为 cin 作为输入方法代码工作正常。如果我跳过 n 的输入(n 是要输入的字符串的长度)并在 for 循环中使用 i#include <iostream>
#include <string>
using namespace std;
int main(){
int n;
cin>>n;
string str;
getline(cin,str);
int c=0;
for(int i=0;i<n;i++)
if(str[i]=='1')
c++;
c=c*(c+1)/2;
cout<<c;
return 0;
}
【问题讨论】:
-
使用调试器也可以查看
str的值,或者在循环前转储std::cout << "'" << str << "'\n"; -
@S.M.我确实尝试过这样做,但据我了解,上面的代码由于某种原因跳过了
getline,因此str没有输出。但cin不会发生这种情况。
标签: c++ string c++11 substring