您的位置:程序门 -> .net技术 ->



c#新手的烦恼


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c#新手的烦恼
发表于:2008-01-06 10:22:24 楼主
string   mystring="a   string";
char[]   mychar=mystring.tochararray();
请各位帮帮忙,解释一下第2句,尽量清楚一点. 谢谢!
发表于:2008-01-06 10:29:491楼 得分:0
把字符串转换成字符数组
发表于:2008-01-06 10:30:542楼 得分:0
同意一楼的解释
发表于:2008-01-06 10:31:093楼 得分:0

char[]       mychar=mystring.tochararray();  
这行代码很明显了呀,看字面意思就知道了.
to   char   array,转换为字符数组.
就是将"a       string"分拆成一个个的字符a,   (空格),s,t....这样,赋值给mychar这个char[]型变量.
发表于:2008-01-06 10:51:334楼 得分:0
tochararray
发表于:2008-01-06 11:54:425楼 得分:0
3楼解释的很详细了
发表于:2008-01-06 11:58:416楼 得分:0
char[]型   变量   是什么类型的变量   数组型的么    
不加[]   和加   有什么区别么
发表于:2008-01-06 13:28:367楼 得分:0
char[]               mychar=mystring.tochararray();      
这行代码很明显了呀,看字面意思就知道了.  
to       char       array,转换为字符数组.  
就是将"a               string"分拆成一个个的字符a,       (空格),s,t....这样,赋值给mychar这个char[]型变量.
发表于:2008-01-06 13:40:468楼 得分:0
已经有人说的很清楚了,我就不说了
发表于:2008-01-06 16:43:199楼 得分:0
都说得很详细,我就只是看看啦。
发表于:2008-01-06 16:58:5410楼 得分:0
字符串mystring转换成mychar字符数组.
发表于:2008-01-09 11:08:3511楼 得分:0
字符串mystring转换成mychar字符数组.
发表于:2008-01-09 11:11:2312楼 得分:0
已经有人说的很清楚了,我就不说了
发表于:2008-01-09 18:33:1013楼 得分:0
  lzはmsdnをみてください
发表于:2008-01-09 18:38:0814楼 得分:0
char[]mychar只不过是个引用,要靠mystring.tochararray()动态分配,如果用在局部一定时间后会被gc解决。
发表于:2008-01-09 18:39:5715楼 得分:0
朋友,一起加油。
发表于:2008-01-09 19:11:0416楼 得分:0
。。。。。。。。。。lz还没节贴。。。又加分了``````````````
发表于:2008-01-09 20:17:0517楼 得分:0
string       mystring="a       string";  
char[]       mychar=mystring.tochararray();

mychar[1]='a',
mychar[2]='   ',
mychar[3]='s',
mychar[4]='t',
mychar[5]='r',
mychar[6]='i',
mychar[7]='n',
mychar[8]='g',
发表于:2008-01-09 20:43:2018楼 得分:0
无语
发表于:2008-01-09 20:44:1419楼 得分:0
把字符串转换成字符数组   大家说的都很好
发表于:2008-01-09 21:20:5020楼 得分:0
楼上的都已经给出答案。搬个板凳看。  
发表于:2008-01-09 23:44:2321楼 得分:0
17楼那个回答我是真佩服,数组索引从1开始?
发表于:2008-01-09 23:53:4522楼 得分:0
char[]               mychar=mystring.tochararray();      
这行代码很明显了呀,看字面意思就知道了.  
to       char       array,转换为字符数组.  
就是将"a               string"分拆成一个个的字符a,       (空格),s,t....这样,赋值给mychar这个char[]型变量.
发表于:2008-01-10 00:07:5023楼 得分:0
装了.net难道没装msdn?
发表于:2008-01-10 10:06:4924楼 得分:0
顶11楼
17楼解释虽有问题,但很直观
发表于:2008-01-10 10:34:1225楼 得分:0
string       mystring="a       string";
char[]       mychar=mystring.tochararray();
请各位帮帮忙,解释一下第2句,尽量清楚一点. 谢谢!

第二句首先声明一个个char型的数组,名称为mychar,c#中数组是使用这样的格式声明的
<数据类型> [] <数组名称> 如char[]   mychar,tochararray()是string类型的一个方法,就是将string类型的字符转换称数组。
呵呵不知道,这样解释的清楚不清楚


发表于:2008-01-10 10:38:2326楼 得分:0
就是将"a   string"分拆成一个个的字符a,(空格),s,t....这样,赋值给mychar这个char[]型字符数组变量.

比如:char[1]为"a"
发表于:2008-01-10 11:44:5427楼 得分:0
哇靠   楼主不知道,这个东西太棒了
不仅可以写猜数字
还可以编码.
另再小问一句     char   a;     a的初始值是什么?
发表于:2008-01-10 12:13:2828楼 得分:0
把字符串转换成字符数组
发表于:2008-01-10 12:35:4829楼 得分:0
string   mystring="a   string";  
char[]   mychar=mystring.tochararray();  
-----------------
第二句是没用的...纯属多此一举...

string本身就是char[]...


mystring[0]-> 'a'
mystring[0]-> '   '
mystring[0]-> 's'
......
发表于:2008-01-10 12:37:5230楼 得分:0
mystring[0]->   'a'  
mystring[1]->   '   '  
mystring[2]->   's'  
-------------
更正一下...ctrl+c-ctrl+v的恶果...-_-!
发表于:2008-01-10 12:40:1731楼 得分:0
lz你真大方
发表于:2008-01-10 12:47:3232楼 得分:0
呵呵。。都是奔这个分来的。。

string.toarray()

把一个字符串返回为一个char数组
发表于:2008-01-10 13:01:1633楼 得分:0
大家都解释的很对,楼主还有什么不明白的   把一个字符串返回为一个char数组  
发表于:2008-01-10 13:01:4234楼 得分:0
字符串转换啊
发表于:2008-01-10 13:13:3235楼 得分:0
char的初始值是什么呀?     有人知道没?????????
发表于:2008-01-10 13:18:4236楼 得分:0
建议lz先把c#的基础的语法看看
发表于:2008-01-10 13:46:2337楼 得分:0
.net内存管理把内存分为堆栈和托管堆两大块,小的、需要快速存取的变量放在堆栈中,大的、可以稍微慢点存取的放在托管堆中。

这句字符串声明语句
c# code
string mystring = "a string";

.net   在执行时会在堆栈上建立一个32位整数,名字是   mystring,类型是   string,内容是一个托管堆的内存寻址编码。
.net还同时在托管堆上建立一串32位整数,内容是   "a   string"   的二进制编码。而刚才那个堆栈上的整数,我们称它为指针,指向的地址就是托管堆上这串整数的开头位置。

同样道理,我们分析这句
c# code
char[] mychar = mystring.tochararray();

.net在执行时会在堆栈上建立一个32位整数,名字是   mychar,类型是   char[],内容是一个托管堆的内存寻址编码,如果没有赋值,这个指针就应该指向   null,表示值为空。
我们再看看等号右边的表达式,是一个方法tochararray,该方法会读取字符串   mystring   的所有字符,在托管堆上建立一个同样内容的字符数组。然后把字符数组的开头位置,即指针作为返回值,赋给等号右边的   mychar。这样字符数组   mychar   就有了内容,不再为空。
发表于:2008-01-10 14:32:0138楼 得分:0
这么多仁兄啊,看来我来时晚了,上面都正确
发表于:2008-01-10 15:08:4839楼 得分:0
把字符串转换成字符数组

string               mystring="a               string";      
char[]               mychar=mystring.tochararray();  

mychar[1]='a',  
mychar[2]='       ',  
mychar[3]='s',  
mychar[4]='t',  
mychar[5]='r',  
mychar[6]='i',  
mychar[7]='n',  
mychar[8]='g',
发表于:2008-01-10 15:15:2940楼 得分:0
...楼上的错误都学             这个叫继承吗?
发表于:2008-01-10 15:32:1541楼 得分:0
这年头有分的贴子就是不沉啊
发表于:2008-01-10 15:57:2842楼 得分:0
你为什么不试一下呢
那样的话就都知道了
发表于:2008-01-10 16:15:5343楼 得分:0
领年终奖来了..
发表于:2008-01-10 16:22:4044楼 得分:0
mark
发表于:2008-01-10 16:37:1345楼 得分:0
mark!重新顶起(3楼已经解释过了)
发表于:2008-01-10 16:50:5746楼 得分:0
来晚了!37楼再把cil也贴出来就更好了:)学习ing
发表于:2008-01-16 20:18:2047楼 得分:0
怪异,为什么你能放120分,我就最多只能放100分呢?
发表于:2008-01-16 20:29:0148楼 得分:0
这个基础~~~也那个了点吧?
发表于:2008-01-16 20:51:2649楼 得分:0
看看解释的意思就知道啦!
发表于:2008-01-17 08:38:0750楼 得分:0
楼主误点了帖子加分吧!jf
发表于:2008-01-17 08:38:2051楼 得分:0
public   unsafe   char[]   tochararray()
{
        int   length   =   this.length;
        char[]   charray   =   new   char[length];
        if   (length   <=   0)
        {
                return   charray;
        }
        fixed   (char*   chref   =   &this.m_firstchar)
        {
                fixed   (char*   chref2   =   charray)
                {
                        wstrcpyptraligned(chref2,   chref,   length);
                        chref   =   null;
                }
                return   charray;
        }
}

private   static   unsafe   void   wstrcpyptraligned(char*   dmem,   char*   smem,   int   charcount)
{
        while   (charcount   > =   8)
        {
                *((int*)   dmem)   =   *((uint*)   smem);
                *((int*)   (dmem   +   2))   =   *((uint*)   (smem   +   2));
                *((int*)   (dmem   +   4))   =   *((uint*)   (smem   +   4));
                *((int*)   (dmem   +   6))   =   *((uint*)   (smem   +   6));
                dmem   +=   8;
                smem   +=   8;
                charcount   -=   8;
        }
        if   ((charcount   &   4)   !=   0)
        {
                *((int*)   dmem)   =   *((uint*)   smem);
                *((int*)   (dmem   +   2))   =   *((uint*)   (smem   +   2));
                dmem   +=   4;
                smem   +=   4;
        }
        if   ((charcount   &   2)   !=   0)
        {
                *((int*)   dmem)   =   *((uint*)   smem);
                dmem   +=   2;
                smem   +=   2;
        }
        if   ((charcount   &   1)   !=   0)
        {
                dmem[0]   =   smem[0];
        }
}

microsoft实现代码

 
发表于:2008-01-17 08:55:2752楼 得分:0
寒啊,這問題不值120
发表于:2008-01-17 08:58:2453楼 得分:0
字符与数组!!
发表于:2008-01-17 09:01:1254楼 得分:0
29楼说的没错
想想c里面没有string类型   而是char[]
c++里面有string类型   只是char[]的封装
c#、java.............依次类推
在c#里面   使用   string[index]是很经常的
msdn上有很多例子
发表于:2008-01-17 09:03:1255楼 得分:0
上头都已经回答好了~~
偶是迟到的回答了,楼主赶紧结贴吧~~~
mark下
发表于:2008-01-17 09:10:5956楼 得分:0
上面的都解释的很清楚了,我是为了分而来。。。

发表于:2008-01-17 09:22:2957楼 得分:0
string               mystring="helloworld!";      
char[]               mychar=mystring.tochararray();  

mychar[1]='h',  
mychar[2]='e',  
mychar[3]='l',  
mychar[4]='l',  
mychar[5]='o',  
mychar[6]='w',  
mychar[7]='o',  
mychar[8]='r',  
mychar[9]='l',  
mychar[10]='d',
mychar[11]='!',

是转成char类型的数组哦
发表于:2008-01-17 09:31:0458楼 得分:0
楼上的已经很详细了,无需再解释
发表于:2008-01-17 09:47:4059楼 得分:0
string       mystring="a       string";  
char[]       mychar=mystring.tochararray();  


        把string     mystring  
                              转换成         char[]   mychar   字符组
发表于:2008-01-17 09:49:1660楼 得分:0
jf
发表于:2008-01-17 09:49:4961楼 得分:0
hehe.
发表于:2008-01-17 09:58:2962楼 得分:0
3楼正解


结贴吧..
发表于:2008-01-17 10:00:5363楼 得分:0
把字符串转换成字符数组
发表于:2008-01-17 10:02:3564楼 得分:0
3楼正解  
发表于:2008-01-17 10:04:3365楼 得分:0
3楼正解
发表于:2008-01-17 10:10:0966楼 得分:0
把字符串转换成字符数组
发表于:2008-01-17 11:23:5367楼 得分:0
把字符串转换成字符数组
就是把"a       string"
转换为:'a','   ','   ','s','t','r','i','n','g'
发表于:2008-01-17 13:05:2768楼 得分:0
mark
发表于:2008-01-17 14:13:3069楼 得分:0
都说的很详细了,我就不多说了
发表于:2008-01-17 14:29:5170楼 得分:0
jk


快速检索

最新资讯
热门点击