в командной строке пользователь должен ввести:C массив Printf и получить open_stackdumpfile ошибка
cmatch -i -n привет test1.in test2.in
"привет" является строка, программа будет искать соответствующие строки во входных файлах.
Теперь я застрял на Printf эта строка .. Я новичок в C и не знаю, как массив строки работает ..
int main(int argc, char **argv){
options opts;
program_name = basename (argv[0]);
scan_options (argc, argv, &opts);
int arrLength=argc-optind;
char *strings[arrLength];
char *fileNames[arrLength-1];
const int fileNamesLength=arrLength-1;
int argi; int i=0;
for (argi = optind; argi < argc; ++argi) {
printf ("operand[%d] = \"%s\"\n", argi, argv[argi]); //printing operands
strings[i]=argv[argi]; //assigning strings
i++;
}
char *stringToMatch=strings[0];
printf("String to match=%s\n",stringToMatch);
int f;
for(f=0; f<fileNamesLength; f++){
fileNames[f]=strings[f+1];
printf(fileNames[f]);
}
printf("GET THROUGH");
теперь выход:
операнд [3] = "Привет"
операнда [4] = "test1.in"
операнд [5] = "test2.in"
Строка, чтобы соответствовать = "привет"
0 [main] cmatch 6092 open_stackdumpfile: Dumping stack trace to cmatch.exe.stackdump
так, что случилось с * stringToMatch?
Что такое 'optind'? Я не вижу, чтобы он определялся где-то – vane
Это положение первого операнда после последнего -описания. Это предоставлено моим учителем. –
Какой компилятор вы используете? – vane