通过.txt文件读取并将所有通过isalpha()的字符置于char数组中。对于它放置\ 0的空格,所以数组中的字符由字符串分隔。这工作。帮助C字符串输入/输出
我需要第二部分的帮助。我需要读取用户输入的字符串(让它称为目标字符串),查找字符数组中目标字符串的所有实例,然后为每个实例: 1.打印目标字符串前面的5个字 2 。打印目标字符串本身 3.打印目标字符串后的5个字
我无法弄清楚,我是一般的新来的C,我发现这个I/O真的很难来自Java。任何帮助,将不胜感激,这里的代码,我现在所拥有的:
#include <stdio.h>
#include <string.h>
main(argc, argv)
int argc;
char *argv[];
{
FILE *inFile;
char ch, ch1;
int i, j;
int arrayPointer = 0;
char wordArray [150000];
for (i = 0; i < 150000; i++)
wordArray [i] = ' ';
/* Reading .txt, strip punctuation, conver to lowercase, add char to array */
void extern exit(int);
if(argc > 2) {
fprintf(stderr, "Usage: fread <filename>\n");
exit(-1);
}
inFile = fopen(argv[1], "r");
ch = fgetc(inFile);
while (ch != EOF) {
if(isalpha(ch)) {
wordArray [arrayPointer] = tolower(ch);
arrayPointer++;
}
else if (isalpha(ch1)) {
wordArray [arrayPointer] = '\0';
arrayPointer++;
}
ch1 = ch;
ch = fgetc(inFile);
}
fclose;
/* Getting the target word from the user */
char str [20];
do {
printf("Enter a word, or type \"zzz\" to quit: ");
scanf ("%s", str);
char* pch;
pch = strstr(wordArray, str);
printf("Found at %d\n", pch - wordArray + 1);
pch = strstr(pch + 1, str);
} while (pch != NULL);
}
当你运行你的程序时会发生什么?你期望你的代码做什么,它有什么不同? – 2011-01-28 01:46:59