我使用指针打开一个由几段组成的.txt
文件。我使用for循环将.txt
文件存储到char word[i]
数组中,然后printf
存储。
除了我不想存储空格和特殊字符外,一切运作良好。我只想将字母字符如ABCD ...... Z存储到我的char word[i]
数组中。
我知道我必须将if
函数放入for循环中,但我不知道确切的语法。请帮忙。
这是我的代码的for循环:
for (i=0; i<1730; i++ )
{
fscanf(fptr,"%c", &word[i]);
printf("%c", word[i]);
};
答案 0 :(得分:0)
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fptr;
char chr;
char *file_name="IdentifiedParts.txt";
fptr = fopen(file_name, "r");
while ( (fscanf(fptr,"%c",&chr)) != EOF ) {
//ASCII values : 65-90 => A-Z , 97-122 => a-z
if( (chr >= 97 && chr <= 122 ) || (chr >= 65 && chr <= 90 ) ) {
printf("%c", chr);
}
}
fclose(fptr);
return 0;
}
OR
while ( (fscanf(fptr,"%c",&chr)) != EOF ) {
if(isalpha(chr)) {
printf("%c", chr);
}
}
答案 1 :(得分:-1)
类似的东西:
#include <stdio.h>
#include <ctype.h>
int main(void){
char word[1730];
FILE* fptr = fopen("input.c", "r");
int i, ch;
for (i = 0; i<1730 && (ch = fgetc(fptr)) != EOF; i++ ){
if(isalpha(ch))
printf("%c", word[i]=ch);
}
fclose(fptr);
return 0;
}
#include <stdio.h>
int main(void){
char word[1730];
FILE* fptr = fopen("input.txt", "r");
while(!feof(fptr)){
while(1 == fscanf(fptr, "%1729[A-Za-z]", word)){
printf("%s", word);
}
fscanf(fptr, "%*[^A-Za-z]");
}
fclose(fptr);
return 0;
}