谁能帮我组织这样的功能(作为我用填字游戏管理的作业):
1)我有字符串数组(一种文本文件),其中
row[0] = "str1"
row[1] = "str2"
等等。
2)每个字符串的长度相同
3)从标准输入输入的单词,如abcd
我需要在对角abcd
位置的文本中找到单词(从左到右并不重要,只需要一种算法)并将找到的单词替换为零。可以找到第一个字母,但是如何正确地前进并用零替换文本?谁能给我任何线索?strchr
解决方案:
顺便说一句,Tnx 用于减去。我找到了另一种解决方案,其中每条对角线都生成为 1 条简单线,然后我将strstr
其应用于查找匹配位置。知道匹配的位置和匹配字符串的长度可以精确地检测匹配单元格在行数组中的位置。
我使用了这样的代码(也许 smn 会发现它很有用):
/* generating left-right diagonal string str */
for( col = cols - len; col >= 0; col --, i = 0 ){
/* where len is the length of searching string */
while( ( col+i ) < cols && i < rows ){
*(str + i) = res[i][col+i];
i ++;
}
*(str + i) = '\0';
//some match seq.
}
我从左上单元格(第一个字符串的开头)到最后一个顶部单元格(第一个字符串的结尾)做了左右对角线。然后对左列进行相同的程序,因此结果算法将覆盖所有字符串。