我有一个三维数组的字符串,我想创建一个函数来计算矩阵中有多少字符串在位置k中有char c。我做了这个功能:
#include <vector>
#include <string>
using namespace std;
typedef vector <string> Row;
typedef vector <Row> Matrix;
int numer_of_words (const Matrix& m, char c, int k) {
int sum = 0;
int rows = m.size();
for (int i=0; i < rows; ++i) {
int words = m[i].size();
for (int j=0; j < words; ++j) {
string s = m[i][j];
if (s.length() <= k) {
if (s[k] == c) ++sum;
}
}
}
return sum;
}
换句话说,当s [k] = c(如果s [k]存在)时,应该增加sum。我没有得到编译错误,但代码不起作用。
答案 0 :(得分:0)
if (s.length() <= k) {
if (s[k] == c) ++sum;
}
只有当s[k]
的长度小于或等于k时,才能访问s
,这与您想要的相反。条件应为s.length() > k
。