zoukankan      html  css  js  c++  java
  • 改正字符数组中的内容

    有一个字符数组的内容为:"student a am i",
    请你将数组的内容改为"i am a student".
    要求:
    不能使用库函数。
    只能开辟有限个空间(空间个数和字符串的长度无关)。

    student a am i
    i ma a tneduts
    i am a student

     1 #include<stdio.h>
     2 
     3 void reverse_string(char* start, char* end)
     4 {
     5     while (start < end)
     6     {
     7         char temp = *start;
     8         *start = *end;
     9         *end = temp;
    10         ++start;
    11         --end;
    12     }
    13 }
    14 
    15 int mystrlen(char* str)
    16 {
    17     int count = 0;
    18     while (*str)
    19     {
    20         count++;
    21         ++str;
    22     }
    23     return count;
    24 }
    25 
    26 void reverse(char* str)
    27 {
    28     //整体逆转
    29     char* start = str;
    30     char* end = str + mystrlen(str) - 1;
    31     char* cur = str;
    32     reverse_string(start, end);
    33     //局部逆转,子串逆转
    34     while (*cur)
    35     {
    36         //子串的起点和终点
    37         char* sub_start = cur;
    38         while ((*cur != ' ') && (*cur != ''))
    39         {
    40             ++cur;
    41         }
    42         //逆转子串
    43         reverse_string(sub_start, cur - 1);
    44         //走到下一个子串的起点
    45         while (*cur == ' ')
    46         {
    47             ++cur;
    48         }
    49     }
    50 }
    51 
    52 int main()
    53 {
    54     char str[100];
    55     //scanf("%s", str);
    56     //scanf函数遇到空格和换行自己结束了,这里应该使用gets函数
    57     gets(str);
    58     reverse(str);
    59     printf("%s
    ",str);
    60 
    61     return 0;
    62 }



  • 相关阅读:
    SQLSERVER FUNCTIONS
    批处理命令学习
    java回调
    android布局中容易混淆的几个属性
    UML类图关系
    android面试试题
    Handler基础
    Android中自定义属性的使用
    php中钩子函数&实现
    Handler高级
  • 原文地址:https://www.cnblogs.com/cuckoo-/p/10372430.html
Copyright © 2011-2022 走看看