zoukankan      html  css  js  c++  java
  • volcanol的工控博客

      1 /*
      2     本程序用来将输入的制表符替换为	, 而将退格替换为, 
      3 将反斜杠替换为\
      4 */
      5 
      6 #include <stdio.h>
      7 #include <stdlib.h>
      8 
      9 typedef struct node
     10 {
     11     char Input;
     12     struct node* next;
     13 }NODE;
     14 
     15 
     16 int   GetLine(NODE *head);
     17 int  Transfer(NODE *head);
     18 void EchoLine(NODE *head);
     19 
     20 int main(int argc,char* argv[],char* env[])
     21 {
     22     NODE* head;
     23 
     24     
     25     if(NULL==(head=(NODE*)malloc(sizeof(NODE))))
     26     {
     27         puts("No enough space,then will quit");
     28         exit(0);
     29     }
     30     
     31 
     32     GetLine(head);
     33     Transfer(head);
     34     EchoLine(head);
     35 
     36     getchar();
     37     return 0;
     38 }
     39 
     40 
     41 /*
     42 函数功能:
     43     读取字符,并用动态分配的内存存储起来
     44 函数原型:
     45     char* GetLine(char* head)
     46 函数参数:
     47     char* head:存储的首地址
     48 返回值:
     49     0:成功执行
     50     1:没有足够的内存空间分配
     51 异常:
     52     传递空指针参数
     53 */
     54 int GetLine(NODE* head)
     55 {
     56     NODE* end;
     57     NODE* temp;
     58 
     59     short int Input;
     60      
     61     if(NULL==(head=(NODE*)malloc(sizeof(NODE))))
     62         exit(0);
     63 
     64     end=head;
     65     while((Input=getchar())!= EOF)
     66     {
     67         end->Input =Input;
     68         if(NULL==(temp=(NODE *)malloc(sizeof(NODE))))
     69             exit(0);
     70         temp->next =NULL;
     71         end->next =temp;
     72         end=temp;
     73     }
     74 
     75     return 0;
     76 }
     77 
     78 /*
     79 函数功能:
     80     '	' ——> ‘\’##‘t’
     81     ‘' ——> '\'##'b'
     82     '\' ——> '\'##'\'
     83 函数原型:
     84     int Transfer(NODE *)
     85 函数参数:
     86     NODE* head:待处理文本流首地址
     87 函数返回值:
     88     0: 成功执行
     89     1: 没有足够的空间存储分配
     90 异常:
     91     传递空指针参数
     92 */
     93 int Transfer(NODE* head)
     94 {
     95     NODE* temp;
     96     NODE* NewNode;
     97     
     98     NewNode=head;
     99     while(NewNode->next != NULL)
    100     {    
    101         if(NewNode->Input == '	')
    102         {
    103             if(NULL==(temp=(NODE*)malloc(sizeof(NODE))))
    104                 return 1;
    105             //1、先将temp的Input成员设置成‘t’
    106             temp->Input ='t';
    107             //2、然后将temp->next指向NewNode的下一个节点
    108             temp->next =NewNode->next ;
    109             //3、然后将NewNode->next指向temp节点
    110             NewNode->next =temp;
    111             //4、设置NewNode->input为反斜杠 ‘\’
    112             NewNode->Input ='\';
    113         }
    114         else if(NewNode->Input == '')
    115         {
    116             if(NULL==(temp=(NODE*)malloc(sizeof(NODE))))
    117                 return 1;
    118             //1、先将temp的Input成员设置成‘t’
    119             temp->Input ='b';
    120             //2、然后将temp->next指向NewNode的下一个节点
    121             temp->next =NewNode->next ;
    122             //3、然后将NewNode->next指向temp节点
    123             NewNode->next =temp;
    124             //4、设置NewNode->input为反斜杠 ‘\’
    125             NewNode->Input ='\';
    126         }
    127         else if(NewNode->Input == '\')
    128         {
    129             if(NULL==(temp=(NODE*)malloc(sizeof(NODE))))
    130                 return 1;
    131             //1、先将temp的Input成员设置成‘t’
    132             temp->Input ='\';
    133             //2、然后将temp->next指向NewNode的下一个节点
    134             temp->next =NewNode->next ;
    135             //3、然后将NewNode->next指向temp节点
    136             NewNode->next =temp;
    137             //4、设置NewNode->input为反斜杠 ‘\’
    138             NewNode->Input ='\';
    139         }
    140     }
    141 
    142     return 0;
    143 }
    144 
    145 
    146 /*
    147 函数功能:
    148     输出字符流
    149 函数原型:
    150     int EchoLine(NODE *head)
    151 函数参数:
    152     NODE* head:存储字符的首地址
    153 返回值:
    154     无返回值
    155 异常:
    156     传递空指针参数
    157 */
    158 
    159 void EchoLine(NODE* head)
    160 {
    161     NODE* temp;
    162     temp=head;
    163     while(NULL != temp->next )
    164     {
    165         putchar(temp->Input);
    166         temp=temp->next ;
    167 
    168         //free(temp);
    169     }
    170 }
  • 相关阅读:
    array.prototype.slice.call(arguments)
    axios 的坑
    Cannot read property 'range' of null
    IDEA导入Eclipse的JavaEE项目详细步骤链接
    使用 yarn 安装时,报错node_modules ode sass:Command failed.
    axios post请求非json传参设置
    vue-cli 3.x跨域配置
    idea错误: 找不到或无法加载主类
    Git 上传新项目
    Windows下生成SSH密钥
  • 原文地址:https://www.cnblogs.com/volcanol/p/7047787.html
Copyright © 2011-2022 走看看