【发布时间】:2021-04-19 12:05:09
【问题描述】:
问题:找出任何字符串中出现的“\n”(换行符)的数量。
输入:String s = "Shroud 是\n 视频游戏社区中的神一样的玩家。"
输出:2
这是我的代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int nseq=0;
string s;
cin>>s;
for(int i=0;i<s.length()-1;i++)
{
if(s.substr(i,i+1)=="\n")
{
nseq++;
}
}
cout<<nseq<<endl;
}
【问题讨论】:
-
你需要找到换行符还是特别是
\n这两个字符? -
@largest_prime_is_463035818 是的,我需要找到换行符。
-
此外,转义序列只出现在程序中。编译后的字符串包含实际的换行符,而不是转义序列
-
请注意,
if (s[i] == '\')不是有效的 C++。反斜杠开始一个转义序列,它将转义下面的单引号,所以你的文字缺少它的结束引号。 -
@shyantanvullingala 我在这里遗漏了什么吗?为什么不简单地
std::cout << std::count(s.begin(), s.end(), '\n');?为什么所有这些代码都是为了获取与某个字符匹配的字符数?您的代码效率也很低,因为它在每次迭代时调用substr(),创建临时的std::string对象。这就是为什么尝试从在线竞赛网站学习 C++ 是浪费时间的原因。
标签: c++ string algorithm data-structures c++17