题目:求字串 哪里错了? 求精通STL的大神帮忙。。。 20
【问题描述】求一个长度为n的字符串中所有长度为k的子字符串,并将所有子串按字典序从小到大输出。【输入格式】输入共2行。第一行为字符串,其长度为n(1≤n≤1000),字符...
【问题描述】
求一个长度为n的字符串中所有长度为k的子字符串,并将所有子串按字典序从小到大输出。
【输入格式】
输入共2行。
第一行为字符串,其长度为n(1≤n≤1000),字符串中不包含空格。
第二行一个整数k,0<k≤min(5, n)。
【输出格式】
输出共一行。
按从小到大排列的所有子字符串, 子串之间用空格隔开。
【样例输入】
HelloWorld
3
【样例输出】
Hel Wor ell llo loW oWo orl rld
C++错误代码:(60分)
#include<bits/stdc++.h>//"万能"的头文件
using namespace std;
string m;
int n;
map<string,bool> book;
int main(void)
{
cin>>m>>n;
int l=m.length();
book.clear();
for(int i=0;i<=l-n;i++)
{
string temp=m.substr(i,n);
book[temp]=true;
}
for(map<string,bool>::iterator i=book.begin();i!=book.end();i++)
cout<<i->first<<ends;
return 0;
} 展开
求一个长度为n的字符串中所有长度为k的子字符串,并将所有子串按字典序从小到大输出。
【输入格式】
输入共2行。
第一行为字符串,其长度为n(1≤n≤1000),字符串中不包含空格。
第二行一个整数k,0<k≤min(5, n)。
【输出格式】
输出共一行。
按从小到大排列的所有子字符串, 子串之间用空格隔开。
【样例输入】
HelloWorld
3
【样例输出】
Hel Wor ell llo loW oWo orl rld
C++错误代码:(60分)
#include<bits/stdc++.h>//"万能"的头文件
using namespace std;
string m;
int n;
map<string,bool> book;
int main(void)
{
cin>>m>>n;
int l=m.length();
book.clear();
for(int i=0;i<=l-n;i++)
{
string temp=m.substr(i,n);
book[temp]=true;
}
for(map<string,bool>::iterator i=book.begin();i!=book.end();i++)
cout<<i->first<<ends;
return 0;
} 展开
1个回答
2016-07-13
展开全部
你打印出s字符串看看,我的理解是估计是s字符串只读入了abc这三个字符在c中,空格是隔开输入的一个分隔符,也就是在多个%读入中,空格是把这些输入分开的标志你用gets(s)试试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询