[英]How to read only alphabetical characters from a txt file while ignoring white spaces and other special characters?
我使用指針打開一個由幾個段落組成的.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]);
};
#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);
}
}
像這樣:
#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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.