zoukankan      html  css  js  c++  java
  • 11、输入字符颠倒输出

     1 #include <stdio.h>
     2 #define MAXLENGTH 1000
     3 
     4 /*
     5     颠倒输入字符串顺序
     6     1、获取并存储字符串
     7     2、获取字符串长度
     8     3、首尾交换
     9     4、起始位置+1,终止位置-1
    10     5、首位交换
    11     6、3-4-5循环
    12 */
    13 
    14 int getline(char line[]);
    15 void reverse(char line[], int length);
    16 
    17 int main()
    18 {
    19     int i;
    20     int length;
    21     char line[MAXLENGTH];
    22 
    23     for (i=0; i<MAXLENGTH; ++i)         //初始化存储数组
    24     {
    25         line[i] = '';
    26     }
    27 
    28     length = getline(line);             //获取输入内容长度
    29 
    30     if (length < 1)
    31         printf("未输入内容!
    ");       //长度判断
    32     else
    33     {
    34         reverse(line, length);
    35         printf("顺序颠倒后输入内容为:%s
    ", line);
    36     }
    37 
    38     return 0;
    39 }
    40 
    41 int getline(char line[])
    42 {
    43     int i;
    44     int c;
    45 
    46     i = 0;
    47 
    48     while ((c=getchar()) != EOF && c != '
    ')
    49     {
    50         line[i] = c;
    51         ++i;
    52     }
    53 
    54     return i;                         //返回输入长度,此处长度值为实际长度,比数组下标多1
    55 }
    56 
    57 void reverse(char line[], int length)
    58 {
    59     int i;
    60     int temp;
    61 
    62     --length;                         //在顺序调换时,把长度值-1,使其与实际数组下标保持一致
    63 
    64     for (i=0; i<length; ++i)
    65     {
    66         temp = line[i];               //先将首字符额外取出
    67         line[i] = line[length];       //将尾字符调换至首字符位置
    68         line[length] = temp;          //将首字符调换至尾字符位置
    69         --length;                     //字符数组长度-1
    70     }
    71 }

     //多行输入,行内连续调换输出
    1
    #include <stdio.h> 2 #define MAXLENGTH 1000 3 4 int getline(char line[]); 5 void reverse(char line[], int length); 6 int start; 7 8 int main() 9 { 10 int i; 11 int length; 12 char line[MAXLENGTH]; 13 14 start = 0; 15 16 for (i=0; i<MAXLENGTH; ++i) 17 { 18 line[i] = ''; 19 } 20 21 length = getline(line); 22 23 if (length < 1) 24 printf("未输入内容! "); 25 else 26 { 27 for (i=0; line[i]!=''; ++i) 28 { 29 while (line[i] == ' ') 30 { 31 length = i; 32 reverse(line, length); 33 start = i+1; 34 ++i; 35 } 36 } 37 printf("顺序颠倒后输入内容为: %s ", line); 38 } 39 40 return 0; 41 } 42 43 int getline(char line[]) 44 { 45 int i; 46 int c; 47 48 i = 0; 49 50 while ((c=getchar()) != EOF) 51 { 52 line[i] = c; 53 ++i; 54 } 55 56 return i; 57 } 58 59 void reverse(char line[], int length) 60 { 61 int temp; 62 63 --length; 64 65 for (; start<length; ++start) 66 { 67 temp = line[start]; 68 line[start] = line[length]; 69 line[length] = temp; 70 --length; 71 } 72 }

  • 相关阅读:
    [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 OnActionExecuting内如何获取参数
    携程SQL面试题忘大牛解答解决思路
    一些.Net面试题 (BS 方向)
    关于SQL SERVER高并发解决方案
    锁sql server锁
    MSSQL WITH (NOLOCK) 脏读
    python dict的函数
    conda常用命令
    sess.run() 中的fetches和feed_dict
    Tensorflow检验GPU是否安装成功 及 使用GPU训练注意事项
  • 原文地址:https://www.cnblogs.com/Gozz/p/7826721.html
Copyright © 2011-2022 走看看