黑马程序员技术交流社区

标题: 编程小问题 [打印本页]

作者: 985127948    时间: 2012-11-9 17:42
标题: 编程小问题
接收用户输入的一句英文,将其中的单词以反序输出。  例如:“I love you”→“i evol uoy”
我是初学c#猛一看还真没有思路,那个高手给指点一下,如果然我输出“uoy evol i”我还有点思路,并且这里的大写I输出来的时候是小写i的,高手指点一下。
作者: 郑昱曦    时间: 2012-11-9 17:53
可以以空格为标识用Split(' ')方法将该字符串分成三个数组,再对数组中的每个字符串逐个倒过来就ok了,然后拼接在一起就可以了
作者: 李栋Jelly    时间: 2012-11-9 17:58
按楼上的将三个数组放在一个倒序的for循环中,   I 转换成 i 可以用ToCharArray     或者Replace
作者: 吴瑞祥    时间: 2012-11-9 22:27
本帖最后由 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';
}
这个比较简单

作者: 维纳斯之叶    时间: 2012-11-10 09:52
嗯,想的和一楼的一样,用spilt()方法以空格为标识将字符串分割成数组, 然后再一次对它们取反最后拼接即可。。。其中大写的I变小写的i用ToLower()转换一下就好。
作者: 张静_90    时间: 2012-11-11 23:02
//接收用户输入的一句英文,将其中的单词以反序输出。例如“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]);
            }
        }
作者: 郭会茹    时间: 2012-11-12 08:48
你把分割后的字符串,用for循环遍历,在for循环中用TocharArray把每个单词转换为char数组,然后Array.reverse反转
作者: 王新阳    时间: 2012-11-13 12:39
/// <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();
作者: 马毅    时间: 2012-11-13 14:38
其实没那么麻烦...
reverse方法可以把一个数组对象按元素顺序反转之后返回~~
直接调用即可
作者: 彭博文    时间: 2012-11-13 18:24
resverse.toArray()




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2