A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 985127948 中级黑马   /  2012-11-9 17:42  /  3040 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接收用户输入的一句英文,将其中的单词以反序输出。  例如:“I love you”→“i evol uoy”
我是初学c#猛一看还真没有思路,那个高手给指点一下,如果然我输出“uoy evol i”我还有点思路,并且这里的大写I输出来的时候是小写i的,高手指点一下。

点评

可以看自学视频。里面有。  发表于 2012-11-9 21:51

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1 可以先看一下C#基础视频部分,然后再做这道.

查看全部评分

9 个回复

倒序浏览
可以以空格为标识用Split(' ')方法将该字符串分成三个数组,再对数组中的每个字符串逐个倒过来就ok了,然后拼接在一起就可以了

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1 这个方法还是挺不错的

查看全部评分

回复 使用道具 举报
按楼上的将三个数组放在一个倒序的for循环中,   I 转换成 i 可以用ToCharArray     或者Replace

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 wrx362114 于 2012-11-9 22:29 编辑

直接对这个字符数组循环判断,
for(i=0;i<length;i++)
{
    if(str>='a'&&str<='z')
         str+='A'-
'a';
    else if(str>='A'&&str<='Z')
str+='a'-A';
}
这个比较简单

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
嗯,想的和一楼的一样,用spilt()方法以空格为标识将字符串分割成数组, 然后再一次对它们取反最后拼接即可。。。其中大写的I变小写的i用ToLower()转换一下就好。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
//接收用户输入的一句英文,将其中的单词以反序输出。例如“I love you”变为“i evol uoy”
        static void Main(string[] args)
        {
            //定义单词的起始和结束位置变量
            int star=0,end=0;
            //提示用户输入
            System.Console.WriteLine("请输入一句英文:");
            //接收键盘的值
            string str = System.Console.ReadLine();
            //循环字符串找出每个单词
            for (int i = 0; i <str.Length; i++)
            {
                //如果是空字符表示一个单词结束
                if (str[i] ==' ')
                {
                    //找到单词尾
                    end = i-1;
                   //调用逆序输出单词函数
                    nixu (str,star,end);
                    //单词之间加空格
                    System.Console.Write(" ");
                    //找到下一个单词的起点
                    star = end+2;
                }
            }
            //最后一个单词的结尾
            end = str.Length-1 ;
            //逆序输出最后一个单词
             nixu (str,star,end);
            System.Console.ReadKey();
        }
        /// <summary>
        /// 逆序输出一个单词
        /// </summary>
        /// <param name="str">要逆序输出单词所在的字符串</param>
        /// <param name="a">单词在字符串中的起始位置</param>
        /// <param name="b">单词在字符串中的的结束位置</param>
       static  void nixu(string str,int a,int b)
        {
             for (int j = b; j >= a; j--)
            {
                System.Console.Write(str[j]);
            }
        }

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
你把分割后的字符串,用for循环遍历,在for循环中用TocharArray把每个单词转换为char数组,然后Array.reverse反转

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
/// <summary>
        /// 接收用户输入的一句英文,将其中的单词以反序输出。
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            Console.WriteLine("请您输入一段英文");
            string input = Console.ReadLine();
            string[] str = input.Split(' ');
            for (int i = 0; i < str.Length; i++)
            {
                string aa = " ";
                for (int j = 0; j < str[i].Length; j++)
                {
                    aa += str[i].Substring(str[i].Length - 1 - j, 1);
                }
                str[i] = aa;
            }
            for (int i = 0; i < str.Length; i++)
            {
                Console.Write(str[i] + "");
               
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
马毅 中级黑马 2012-11-13 14:38:40
9#
其实没那么麻烦...
reverse方法可以把一个数组对象按元素顺序反转之后返回~~
直接调用即可

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
resverse.toArray()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马