永发信息网

c语言编程题 在一个内容为英文的文本文件中file1.txt文件中的单词之间用空格分隔,且两个单词

答案:2  悬赏:40  手机版
解决时间 2021-04-05 06:09
  • 提问者网友:龅牙恐龙妹
  • 2021-04-04 15:05
c语言编程题 在一个内容为英文的文本文件中file1.txt文件中的单词之间用空格分隔,且两个单词
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-04-04 16:21
这题目是谁想出来的,看起来简单,名堂一堆,写死人了……
#include 
#include 
#include 
void Swap(char *s1, char *s2)
{
    char tmp[20] = {''};
    strcpy(tmp, s1);
    strcpy(s1, s2);
    strcpy(s2, tmp);
}
void ReadIt(FILE *fp, char *arr[], int *n)
{
    while (!feof(fp)) {
        arr[*n] = (char *)malloc(sizeof(char) * 20);
        fscanf(fp, "%s ", &arr[*n][0]);
        (*n)++;
    }
}
void SortIt(char *arr[], int n)
{
    for (int i = 0; i < n; i++)
        for (int j = 0; j < i; j++)
            if (strcmp(arr[i], arr[j]) > 0)
                Swap(arr[i], arr[j]);
}
void WriteIt(char *arr[], int n, FILE *fp)
{
    while (--n >= 0)
        fprintf(fp, "%s ", &arr[n][0]);
}
int main()
{
    char *word[300] = {''};
    int count = 0;
    FILE *fp1, *fp2;
    fp1 = fopen("file1.txt", "r");
    fp2 = fopen("file2.txt", "w");
    if (!fp1 || !fp2) {
        puts("Error!");
        return 0;
    }
    ReadIt(fp1, word, &count);
    SortIt(word, count);
    WriteIt(word, count, fp2);
    fclose(fp1);
    fclose(fp2);
    while (--count >= 0)
        free(word[count]);
    return 0;
}附件是编译成功的文件及测试输入文件和测试输出文件。
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-04-04 16:50
哥 你学这个啊 给我编个外挂呗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯