【发布时间】:2013-04-26 15:46:06
【问题描述】:
我有一个字符串的三维数组,我想创建一个函数来计算矩阵中有多少个字符串在位置 k 处具有字符 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 应该增加。我没有收到编译错误,但代码不起作用。
【问题讨论】:
-
我认为他在将代码转换为英文时有一堆错字,很可能代码在他的机器上运行。
-
是的,这是一个错字对不起,我不得不从另一种语言翻译它
-
好的,我刚刚编辑了它,我认为没有错别字了
-
@很快我改变了它,我得到了这个错误“你的程序太慢了,或者它可能永远不会停止。后一种情况的最常见原因是试图访问无效的内存引用,使用内存过多(包括递归堆栈)、浮点异常和打印过多输出。”
-
@Buradi:哇……谁说的?
标签: c++ string search matrix char