请用c语言为我写一段代码,可以实现将一个txt文件中的英文单词提取出来写到另一个txt文件中,并且排列方式为每一行一个单词,后面附加单词长度。
时间: 2024-10-17 11:11:07 浏览: 16
对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单词表,结果输出在文本文件output.txt中,每个单词一行,并在单词后输出该单词出现的个数,两个字段之间用逗号分隔。约定单词仅由英文字母组成,单词间由非英文字母分隔,相同单词只输出一个,大小写不区分。
5星 · 资源好评率100%
以下是用C语言编写的一个简单程序,它会读取一个.txt文件中的英文单词并将其写入另一个新的.txt文件,每个单词后面跟着它的长度。这个程序假设输入文件中的单词由空格分隔。
```c
#include <stdio.h>
#include <ctype.h> // for isalpha() function
void extract_words(const char *input_file, const char *output_file) {
FILE *input = fopen(input_file, "r");
FILE *output = fopen(output_file, "w");
if (input == NULL || output == NULL) {
printf("Error opening files.\n");
return;
}
int word_length = 0;
char current_word[100]; // Assuming the maximum word length is around 99 characters
while (!feof(input)) {
int c = fgetc(input);
if (isalpha(c)) { // Check if character is a letter
current_word[word_length] = tolower(c); // Convert to lowercase for consistency
word_length++;
} else if (word_length > 0) {
current_word[word_length] = '\0'; // End of word reached, write to file and reset word length
fprintf(output, "%s (%d)\n", current_word, word_length);
word_length = 0; // Reset word_length for next word
}
}
if (word_length > 0) { // Handle last word in case it doesn't end with a non-alphabetic character
current_word[word_length] = '\0';
fprintf(output, "%s (%d)\n", current_word, word_length);
}
fclose(input);
fclose(output);
}
int main() {
const char *input_file = "input.txt";
const char *output_file = "output.txt";
extract_words(input_file, output_file);
return 0;
}
```
阅读全文