通過.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