• 反转单词(C#实现)



    using System;
    using System.Collections.Generic;

    namespace ReverWords
    {
        
    class MainClass
        {
            
    public static void Main(string[] args)
            {
                Console.WriteLine(ReverseWords(
    "Hello World"));
                Console.Read();
            }
            
    public static string ReverseWords(string array)
            {
                 
    if (string.IsNullOrEmpty(array))
                 {
                      
    throw new ArgumentException("");
                 }
                 
    int arrLen = array.Length;
                 
    char[] strNew = new char[arrLen + 1];
                 
                 
    //全部反转 
                 for (int index = 0; index < arrLen; index++)
                 {
                     strNew[index] 
    = array[arrLen - 1 - index];
                 }
                 strNew[arrLen] 
    = ' '//为了复原最后一个单词,添加一个辅助空格 
                 int iStart = 0, iEnd = 0;
                 
    char tmpChar;+
                 
    //复原单词 
                 for (int Index = 0; Index < arrLen + 1; Index++)
                 {
                    
    //Index指向空格 
                    if (strNew[Index] == ' ')
                    {
                        iEnd 
    = Index - 1;
                        
    while (iStart < iEnd)
                        {
                            tmpChar 
    = strNew[iStart];
                            strNew[iStart] 
    = strNew[iEnd];
                            strNew[iEnd] 
    = tmpChar;
                            iStart
    ++;
                            iEnd
    --;
                        }
                            iStart 
    = Index + 1;//跳过空格 
                    }
                    
    else if (strNew[Index] == '!' | strNew[Index] == ',' | strNew[Index] == '.' | strNew[Index] == ';')
                    {
                       iStart 
    = Index + 1;//跳过标点 
                    }
                }
                
    //合成字符串 
                array = string.Empty;
                
    for (int index = 0; index < strNew.Length - 1; index++)//去掉辅助的空格 
                {
                   array 
    += strNew[index];
                }
                
    return array;
           }
        }
    }
  • 相关阅读:
    Qt class加载头文件
    Qt 中KeyPressEvent获取不到Key_Space等事件
    如何选择开源许可证?
    C语言实现库函数汇总
    简单背包问题-递归非递归实现
    中点优先顺序遍历数组-递归非递归实现
    稀疏矩阵十字链表表示
    稀疏矩阵线性表示
    KMP模式匹配
    双向链表
  • 原文地址:https://www.cnblogs.com/kakaliush/p/2059305.html
Copyright © 2020-2023  润新知