Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
234 views
in Technique[技术] by (71.8m points)

c++ - New Edit: Continue to receive msg "Segmentation Fault: 11" when I try to run the program, any ideas?

Really unsure what to do, all it is is checking if a word matches in the matrix only from left to right. You out the word and the starting position in the command line. So the command "./a.out tcnj 1 1 < 0505matrix" will return true because the letters tcnj start at position 1 1 in the matrix Thanks so much, all help is appreciated! So this is the matrix only the letters are in 5 rows of 5 (thats what the 5s are) similar to a word search

5 5 u r a q o f t c n j k r h p r e a v o t z h g a h

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(int argc, char *argv[]){

  for(int i = 0; i < argc; i++){
    cout << argv[i] << " ";
  }
  std::string sWord = argv[1];
  int wordLength = sWord.length();
  int startRow = atoi(argv[2]);
  int startCol = atoi(argv[3]);

  int x, y;
  cin >> x >> y;
  cout << x << y << endl;
  vector < vector < char > > matrix;
  matrix.resize(x);
  for(int i = 0; i < matrix.size(); i++){
    matrix.resize(y);
    for(int k = 0; k < matrix.size(); k++){
      cin >> matrix[i][k];
    }
  }
  for(int i = 0; i < wordLength; i++){
    if(matrix[startRow][startCol + i] != sWord[i]){
      return false;
    }
    else{
      return true;
    }
  }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think the problem in your code is, in the below line,

matrix.resize(y);

Since it is a two dimensional vector You should do like this.

  matrix.resize(x);
  for(int i = 0; i < matrix.size(); i++){
    matrix[i].resize(y);
    for(int k = 0; k < matrix.size(); k++){
      cin >> matrix[i][k];
    }
  }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...