在三维字符串数组中找到一个char

时间:2013-04-26 15:46:07

标签: c++ string search matrix char

我有一个三维数组的字符串,我想创建一个函数来计算矩阵中有多少字符串在位置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。我没有得到编译错误,但代码不起作用。

1 个答案:

答案 0 :(得分:0)

if (s.length() <= k) {
    if (s[k] == c) ++sum;
}

只有当s[k]的长度小于或等于k时,才能访问s,这与您想要的相反。条件应为s.length() > k