#include <stdio.h>
#include <time.h>
#include <string.h>
char *matrix[10][10];
int main(void) {
int i;
char *list[4];
char *words[20] = {
" c a t ", " c a r ", " b e a r ", " s h i p ",
" m o u s e ", " b e a t l e ", " c o a t ", " n e s t ",
" i c e ", " s u g a r ", " b a c o n ", " f r o w n ",
" s m i l e ", " d e a d ", " f e a t h e r ", " g o a t ",
" h e n "," j e l l y "," k o a l a "," l i p s "
};
int length;
int num;
int k;
int m;
char otherString=0;
char *c;
int j;
int s;
int r;
char test[10];
char *token;
const char *search = " ";
char *empty = "";
int size;
int ans;
int x;
int y;
int pos;
int pos2;
int randRow;
int randColumn;
int chosen[10];
int random;
int d;
int ROWS = 10; // number of rows
int COLUMNS = 10; // number of columns
printf("\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\n");
srand(time(NULL));
for (i = 0; i < 4; i++) {
printf("\n");
d = 0;
do {
random = (rand() % 20);
list[i] = words[random];
d = 0;
for (j = 0; j < i; j++) {
if (strcmp(words[random], list[j]) == 0)
d = 1;
}
} while (d);
}
token = strtok((words[random]), search);
while (token != NULL) {
length = strlen(words[random]);
for (k = 0; k < length; k++) {
matrix[i][k] = token;
token = strtok(NULL, search);
matrix [i][k] = token;
}
}
for (r = 0; r < 10; r++) {
printf("\n");
for (s = 0; s < 10; s++) {
//ans = strlen(matrix[r][s]);
/* if (ans == 0) {
c = 'A' + (rand() % 26);
matrix[r][s] = c;
}*/
printf("\t%s", matrix[r][s]);
}
}
getchar();
return 0;
}
В основном эта программа генерирует 4 случайные слова, которые не могут быть дублируют
strtok
используется для скольжения слова так, чтобы они могут быть введены полукокса путем полукокса в матрицу. наконец, любые нулевые символы в матрице будут заменены на случайные символов. однакоstrtok
генерирует ошибку времени выполнения, и я не уверен, как проверить нулевой элемент?strtok необработанное исключение; Доступ нарушение письма расположение
'strtok' изменить строку, но вы не можете изменить строковые литералы. – BLUEPIXY
, так как я могу исправить ошибку? – chris
как насчет проверки нулевого элемента? – chris